Skip to main content

Aperçu

SDK Swift pour iOS, macOS, tvOS et watchOS qui vous permet d’intégrer Auth0 en toute simplicité à vos applications. Ajoutez la connexion et la déconnexion, stockez vos identifiants en toute sécurité et accédez aux informations de l’utilisateur.Consultez le dépôt GitHubVous migrez depuis la v1? Consultez le guide de migration

Documentation

Prise en main

Exigences

  • iOS 13.0+ / macOS 11.0+ / tvOS 13.0+ / watchOS 7.0+
  • Xcode 14.x
  • Swift 5.7+
Consultez la politique de prise en charge pour savoir dans quels cas l’abandon de versions de Xcode, de Swift et de plateformes ne sera pas considéré comme un changement majeur.

Installation

Swift Package Manager

Dans Xcode, ouvrez l’élément de menu suivant : File > Add Packages… Dans le champ de recherche Search or Enter Package URL, saisissez cette URL :
https://github.com/auth0/Auth0.swift
Ensuite, sélectionnez la règle de dépendance, puis cliquez sur Ajouter le paquet.

Cocoapods

Ajoutez la ligne suivante dans votre Podfile :
pod 'Auth0', '~> 2.0'
Ensuite, exécutez pod install.

Carthage

Ajoutez la ligne suivante à votre Cartfile :
github "auth0/Auth0.swift" ~> 2.0
Ensuite, exécutez carthage bootstrap --use-xcframeworks.

Configurer le SDK

Accédez à l’Auth0 Dashboard et créez une nouvelle application Native. Auth0.swift a besoin de l’ et du Domaine de l’application Auth0 pour communiquer avec Auth0. Vous trouverez ces renseignements sur la page Settings de votre application Auth0. Si vous utilisez un domaine personnalisé, utilisez la valeur de votre au lieu de celle indiquée sur la page Settings.

Configurez l’ID client et le domaine dans un fichier plist

Créez un fichier plist nommé Auth0.plist dans le bundle de votre application avec le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ClientId</key>
    <string>{yourAuth0ClientId}</string>
    <key>Domain</key>
    <string>{yourAuth0Domain}</string>
</dict>
</plist>

Configurer l’ID client et le domaine par code

Pour Web Auth
Auth0
    .webAuth(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
Pour le client de l’Authentication API
Auth0
    .authentication(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
Pour le client de la Management API (Utilisateurs)
Auth0
    .users(token: credentials.accessToken, domain: "{yourAuth0Domain}")
    // ...

Configurer Web Auth (iOS / macOS)

Configurer l’URL de rappel et l’URL de déconnexion

L’URL de rappel et l’URL de déconnexion sont les URL qu’Auth0 utilise pour rediriger vers votre application. Auth0 utilise l’URL de rappel après avoir authentifié l’utilisateur, puis l’URL de déconnexion après avoir supprimé le . Comme l’URL de rappel et l’URL de déconnexion peuvent être modifiées, vous devez ajouter vos URL dans les champs Allowed Callback URLs et Allowed Logout URLs de la page Settings de votre application Auth0. Auth0 pourra ainsi reconnaître ces URL comme valides. Si l’URL de rappel et l’URL de déconnexion ne sont pas définies, les utilisateurs ne pourront pas ouvrir ni fermer de session dans l’application et recevront une erreur. Accédez à la page Settings de votre application Auth0 et ajoutez l’URL correspondante dans Allowed Callback URLs et Allowed Logout URLs, selon la plateforme de votre application. Si vous utilisez un domaine personnalisé, remplacez {yourAuth0Domain} par la valeur de votre domaine personnalisé plutôt que par celle indiquée sur la page Settings.
iOS
{yourBundleIdentifier}://{yourAuth0Domain}/ios/{yourBundleIdentifier}/callback
macOS
{yourBundleIdentifier}://{yourAuth0Domain}/macos/{yourBundleIdentifier}/callback
Par exemple, si l’identifiant du bundle iOS était com.example.MyApp et que votre domaine Auth0 était example.us.auth0.com, cette valeur serait :
com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
Assurez-vous que le paramètre Token Endpoint Authentication Method est réglé sur None.

Configurer un schéma d’URL personnalisé

Dans Xcode, accédez à l’onglet Info des réglages de la cible de votre application. Dans la section URL Types, cliquez sur le bouton  pour ajouter une nouvelle entrée. Entrez ensuite auth0 dans le champ Identifier et $(PRODUCT_BUNDLE_IDENTIFIER) dans le champ URL Schemes. Cela enregistre l’identifiant de votre bundle comme schéma d’URL personnalisé, ce qui permet à l’URL de rappel et à l’URL de déconnexion d’ouvrir votre application.

Connexion avec Web Auth (iOS / macOS)

Importez le module Auth0 dans le fichier à partir duquel vous souhaitez afficher la page de connexion.
import Auth0
Ensuite, affichez la page Universal Login dans l’action associée à votre bouton Connexion.
Auth0
    .webAuth()
    .start { result in
        switch result {
        case .success(let credentials):
            print("Obtained credentials: \(credentials)")
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }

Utiliser async/await

do {
    let credentials = try await Auth0.webAuth().start()
    print("Obtained credentials: \(credentials)")
} catch {
    print("Failed with: \(error)")
}

Utiliser Combine

Auth0
    .webAuth()
    .start()
    .sink(receiveCompletion: { completion in
        if case .failure(let error) = completion {
            print("Failed with: \(error)")
        }
    }, receiveValue: { credentials in
        print("Obtained credentials: \(credentials)")
    })
    .store(in: &cancellables)

Déconnexion Web Auth (iOS / macOS)

La déconnexion de l’utilisateur consiste à effacer le cookie de session de , puis à supprimer de votre application les identifiants de l’utilisateur. Appelez la méthode clearSession() dans l’action de votre bouton Déconnexion. Une fois le cookie de session effacé, supprimez les identifiants de l’utilisateur.
Auth0
    .webAuth()
    .clearSession { result in
        switch result {
        case .success:
            print("Session cookie cleared")
            // Supprimer les identifiants
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }

Utilisation d’async/await

do {
    try await Auth0.webAuth().clearSession()
    print("Session cookie cleared")
    // Supprimer les identifiants
} catch {
    print("Failed with: \(error)")
}

Utiliser Combine

Auth0
    .webAuth()
    .clearSession()
    .sink(receiveCompletion: { completion in
        switch completion {
        case .finished:
            print("Session cookie cleared")
            // Supprimer les identifiants
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }, receiveValue: {})
    .store(in: &cancellables)

Fenêtre d’alerte SSO (iOS / macOS)

undefined
Consultez la FAQ pour en savoir plus sur la fenêtre d’alerte qui s’affiche par défaut lorsque vous utilisez Web Auth.
Consultez également How to Create a Seamless Mobile SSO (Single Sign-On) Experience in iOS pour une vue d’ensemble détaillée.

Prochaines étapes

Découvrez la plupart des fonctionnalités dans Examples :