Publié par

Il y a 7 mois -

Temps de lecture 1 minute

Pépite #4 – iOS : L’authentification à votre service

Vous rêviez de faire de l’OAuth facilement ? De ne plus utiliser cette bibliothèque plus maintenue depuis 2 ans ? Ou décortiquer le code maison de votre collègue maintenant parti depuis des lustres ?

N’attendez plus, j’ai LA-SOLUTION.

Introduit pendant la WWDC 2018, le nouveau framework AuthenticationServices vous permet, comme son nom l’indique, de gérer l’authentification, en 2 coups de cuillère à pot.

 

Toujours pas convaincu ? En exclusivité, notre démonstration de sa simplissimité :

AuthenticationServices
import AuthenticationServices

...

@available(iOS 12.0, *)
func logUser() {
	let oauthURL = URL(string: "https://github.com/login/oauth/authorize?client_id=client_id")!
	let callbackUrlScheme = "myApp://home"
        
	webAuthSession = ASWebAuthenticationSession(url: oauthURL, callbackURLScheme: callbackUrlScheme) { callbackURL, error in
		guard error == nil, let callbackURL = callbackURL else {
			return
		}
            
		let oauthCode = NSURLComponents(string: (callbackURL.absoluteString))?.queryItems?.first(where: { $0.name == "code" })
            
		// Use oauthCode to finalize authentication
		// More about OAuth apps with GitHub: https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/
	}
        
	webAuthSession?.start()
}

Je vous avais prévenu, ce framework est-fait-pour-vous.

Tout ceci pour la modique somme d’une dizaine de lignes de code. En bonus, vous bénéficiez en exclusivité d’un stockage, qui n’est normalement plus autorisé depuis iOS 11, de cookie partagé entre Safari et votre app : si votre utilisateur était préalablement authentifié, nul besoin de lui demander de nouveau ses identifiants !

Garanti satisfait ou remboursé !

Condition d’éligibilité iOS 12, déprécie SFAuthenticationSession introduit sur iOS 11. En aucun cas, nous ne saurions être tenus responsables des dommages causés par des versions d’OS non gérées, un URL scheme non référencé dans l’Info.plist ou une coupure réseau. Conditions générales de ventes sur la documentation Apple.

Publié par

Publié par Julien Datour

Développeur iOS, passionné par le monde de la mobilité. Ses sujets en ce moment: la réalité augmentée et le machine learning sur mobile.

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.