Skip to main content

Overview

Trousse SDK pour Swift pour iOS, macOS, tvOS et watchOS qui vous permet une intégration fluide d’Auth0 dans vos applications. Ajoutez en toute sécurité les informations de connexion, déconnexion et stockage et accédez aux informations des utilisateurs.Voir le répertoire GitHubVous migrez depuis la v1? Consultez leGuide de migration

Documentation

Démarrage

Exigences

  • iOS 13.0+ / macOS 11.0+ / tvOS 13.0+ / watchOS 7.0+
  • Xcode 14.x
  • Swift 5.7+
Consultez la Politique d’assistance pour découvrir quand l’abandon des versions de Xcode, Swift et de la plateforme ne sera pas considéré comme un changement majeur.

Installation

Gestionnaire de paquets Swift

Ouvrez l’élément de menu suivant dans Xcode : Fichiers > Ajouter des packages… Dans la boîte de recherche Rechercher ou entrer un package URL entrez cette URL :
https://github.com/auth0/Auth0.swift
Sélectionnez ensuite la règle de dépendance et appuyez sur Ajouter un package.

Cocoapods

Ajoutez la ligne suivante à votre Podfile :
pod 'Auth0', '~> 2.0'
Exécutez ensuite pod install.

Carthage

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

Configurer la trousse SDK

Allez sur Auth0 Dashboard et créez une nouvelle application Native. Auth0.swift a besoin de l’ID client et du domaine de l’application Auth0 pour communiquer avec Auth0. Vous trouverez ces informations dans la page « Settings » (Paramètres) de votre application Auth0. Si vous utilisez un domaine personnalisé, utilisez la valeur de votre domaine personnalisé au lieu de la valeur de la page Paramètres.

Configurer l’ID client et le domaine avec une plist

Créez un fichier plist nommé Auth0.plist dans le package d’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 programme

Pour Web Auth
Auth0
    .webAuth(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
Pour le client Authentication API
Auth0
    .authentication(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
Pour le client 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’invoque Auth0 pour rediriger vers votre application. Auth0 invoque l’URL de rappel après avoir authentifié l’utilisateur, et l’URL de déconnexion après avoir supprimé le témoin de session. Comme l’URL de rappel et l’URL déconnexion peuvent être manipulées, vous devrez ajouter vos URL aux champs URL de rappel autorisées et URL de déconnexion autorisées dans la page Paramètres de votre application Auth0. Cela permettra à Auth0 de reconnaître ces URL comme valides. Si les champs des URL de rappel et URL de déconnexion ne sont pas définis, les utilisateurs ne pourront pas se connecter et se déconnecter de l’application et obtiendront une erreur. Accédez à la page Paramètres de votre application Auth0 et ajoutez les URL correspondantes à l’URL de rappel autorisée et URL de déconnexion autorisées, en fonction de la plateforme de votre application. Si vous utilisez un domaine personnalisé, remplacez {yourAuth0Domain} par la valeur de votre domaine personnalisé au lieu de la valeur de la page Paramètres.
iOS
{yourBundleIdentifier}://{yourAuth0Domain}/ios/{yourBundleIdentifier}/callback
macOS
{yourBundleIdentifier}://{yourAuth0Domain}/macos/{yourBundleIdentifier}/callback
Par exemple, si votre identifiant de paquet iOS était com.example.MyApp et que votre domaine Auth0 était example.us.auth0.com, alors cette valeur serait :
com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
Assurez-vous que le paramètre Méthode d’authentification du point de terminaison des jetons est réglé sur None.

Configurer le schéma personnalisé des URL

Dans Xcode, allez dans l’onglet Info des paramètres de la cible de votre application. Dans la section Types d’URL, cliquez sur le bouton pour ajouter une nouvelle entrée. Saisissez auth0 dans le champ Identifiant et $(PRODUCT_BUNDLE_IDENTIFIER) dans le champ Schémas des URL. Cela permet d’enregistrer l’identifiant de votre package en tant qu’URL de schéma personnalisé, afin que l’URL de rappel et l’URL de déconnexion puissent atteindre votre application.

Connexion Web Auth (iOS / macOS)

Importez le module Auth0 dans le fichier où vous souhaitez présenter la page de connexion.
import Auth0
Ensuite, présentez la page Connexion universelle dans l’action de 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)

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

Utiliser async/await

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

Utiliser Combine

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

Boîte d’alerte SSO (iOS / macOS)

undefined
Consultez la FAQ pour plus d’informations sur la boîte d’alerte qui s’affiche par défaut lors de l’utilisation de Web Auth.

Prochaines étapes

En savoir plus sur la majorité des fonctions dans Exemples :
I