Auth0.swift

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 GitHub

Vous migrez depuis la v1? Consultez le Guide de migration

Documentation

Démarrage

Exigences

  • iOS 13.0+ / macOS 11.0+ / tvOS 13.0+ / watchOS 7.0+

  • Xcode 14.x

  • Swift 5.7+

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

Was this helpful?

/

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'

Was this helpful?

/

Exécutez ensuite pod install.

Carthage

Ajoutez la ligne suivante à votre Cartfile :

github "auth0/Auth0.swift" ~> 2.0

Was this helpful?

/

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>

Was this helpful?

/

Configurer l’ID client et le domaine par programme

Pour Web Auth

Auth0
    .webAuth(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...

Was this helpful?

/

Pour le client Authentication API

Auth0
    .authentication(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...

Was this helpful?

/

Pour le client Management API (utilisateurs)

Auth0
    .users(token: credentials.accessToken, domain: "{yourAuth0Domain}")
    // ...

Was this helpful?

/

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

Was this helpful?

/

macOS

{yourBundleIdentifier}://{yourAuth0Domain}/macos/{yourBundleIdentifier}/callback

Was this helpful?

/

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

Was this helpful?

/

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

Was this helpful?

/

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)")
        }
    }

Was this helpful?

/

Utiliser async/await

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

Was this helpful?

/

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)

Was this helpful?

/

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)")
        }
    }

Was this helpful?

/

Utiliser async/await

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

Was this helpful?

/

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)

Was this helpful?

/

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 :