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é :
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.