> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Comment installer Auth0.swift et commencer à l’utiliser

# Auth0.swift

<Card title="Vue d’ensemble">
  SDK Swift pour iOS, macOS, tvOS, watchOS et visionOS qui vous permet d’intégrer Auth0 à vos applications en toute simplicité. Ajoutez la connexion et la déconnexion, stockez les identifiants de manière sécuritaire et accédez aux renseignements de l’utilisateur.

  **Consultez le** [**dépôt GitHub**](https://github.com/auth0/Auth0.swift)

  **Vous migrez depuis la v2? Consultez le** [**guide de migration**](https://github.com/auth0/Auth0.swift/blob/master/V3_MIGRATION_GUIDE.md)
</Card>

<div id="documentation">
  ## Documentation
</div>

* [Quickstart](/docs/fr-ca/quickstart/native/ios-swift/interactive) : montre comment intégrer Auth0.swift dans une application iOS / macOS à partir de zéro.
* [Application d’exemple](https://github.com/auth0-samples/auth0-ios-swift-sample/tree/master/Sample-01) : une application iOS / macOS complète et fonctionnelle que vous pouvez essayer.
* [Exemples](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md) : explique comment utiliser la plupart des fonctionnalités.
* [Documentation de l’API](https://auth0.github.io/Auth0.swift/documentation/auth0) : documentation générée automatiquement à partir des commentaires du code, qui explique toutes les fonctionnalités offertes.

  * [Web Auth](https://auth0.github.io/Auth0.swift/documentation/auth0/webauth)
  * [Credentials Manager](https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager)
  * [Authentication API Client](https://auth0.github.io/Auth0.swift/documentation/auth0/authentication)
  * [MFA API Client](https://auth0.github.io/Auth0.swift/documentation/auth0/mfaclient)
* [FAQ](https://github.com/auth0/Auth0.swift/blob/master/FAQ.md) : répond à certaines questions fréquentes sur Auth0.swift.
* [Documentation Auth0 :](https://auth0.com/docs) consultez notre site de documentation pour en savoir plus sur Auth0.

<div id="getting-started">
  ## Premiers pas
</div>

<div id="requirements">
  ### Prérequis
</div>

* iOS 14.0+ / macOS 11.0+ / tvOS 14.0+ / watchOS 7.0+ / visionOS 1.0+
* Xcode 16.x
* Swift 6.0+

<Warning>
  Consultez la [politique de soutien](https://github.com/auth0/Auth0.swift/tree/master#support-policy) pour savoir quand l’abandon de versions de Xcode, de Swift et de plateforme ne sera pas considéré comme un **changement incompatible**.
</Warning>

<div id="installation">
  ### Installation
</div>

<div id="swift-package-manager">
  #### Swift Package Manager
</div>

Ouvrez l’élément de menu suivant dans Xcode :

**Fichier > Ajouter des packages...**

Dans le champ de recherche **Rechercher ou saisir l’URL du package**, entrez cette URL :

```http lines theme={null}
https://github.com/auth0/Auth0.swift
```

Ensuite, sélectionnez la règle de dépendance, puis cliquez sur **Ajouter un package**.

<div id="cocoapods">
  #### Cocoapods
</div>

Ajoutez la ligne suivante dans votre `Podfile` :

```bash lines theme={null}
pod 'Auth0', '~> 3.0'
```

Ensuite, exécutez `pod install`.

<div id="carthage">
  #### Carthage
</div>

Ajoutez la ligne suivante à votre `Cartfile` :

```bash lines theme={null}
github "auth0/Auth0.swift" ~> 3.0
```

Ensuite, exécutez `carthage bootstrap --use-xcframeworks`.

<div id="configure-the-sdk">
  ### Configurer le SDK
</div>

Accédez au [Auth0 Dashboard](https://manage.auth0.com/#/applications/) et créez une nouvelle application **Native**.

Auth0.swift a besoin du **<Tooltip tip="Client ID : valeur d’identification attribuée par Auth0 à votre ressource enregistrée." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Client+ID">Client ID</Tooltip>** et du **Domain** de l’application Auth0 pour communiquer avec Auth0. Vous trouverez ces renseignements dans la page Settings de votre application Auth0. Si vous utilisez un [domaine personnalisé](/docs/fr-ca/customize/custom-domains), utilisez la valeur de votre <Tooltip tip="Custom Domain : domaine third-party avec un nom spécialisé ou personnalisé." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=custom+domain">domaine personnalisé</Tooltip> au lieu de celle indiquée dans la page Settings.

<div id="configure-client-id-and-domain-with-a-plist">
  #### Configurer Client ID et Domain avec un fichier plist
</div>

Créez un fichier `plist` nommé `Auth0.plist` dans le bundle de votre application avec le contenu suivant :

```xml lines theme={null}
<?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>
```

<div id="configure-client-id-and-domain-programmatically">
  #### Configurer Client ID et Domain de façon programmatique
</div>

<div id="for-web-auth">
  ##### Pour Web Auth
</div>

```swift lines theme={null}
Auth0
    .webAuth(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
```

<div id="for-the-authentication-api-client">
  ##### Pour le client de l’Authentication API
</div>

```swift lines theme={null}
Auth0
    .authentication(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
```

<div id="configure-web-auth-ios-macos">
  ### Configurer Web Auth (iOS / macOS)
</div>

<div id="configure-callback-url-and-logout-url">
  #### Configurer l’URL de rappel et l’URL de déconnexion
</div>

L’URL de rappel et l’URL de déconnexion sont les URL qu’Auth0 utilise pour rediriger l’utilisateur vers votre application. Auth0 utilise l’URL de rappel après avoir authentifié l’utilisateur, et l’URL de déconnexion après avoir supprimé le <Tooltip tip="Session Cookie : Entité qui, lorsqu’elle est présente, permet de considérer l’utilisateur comme authentifié." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=session+cookie">cookie de session</Tooltip>.

Comme l’URL de rappel et l’URL de déconnexion peuvent être modifiées, vous devez ajouter vos URL aux 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 se connecter ni se déconnecter de l’application et recevront une erreur.

Accédez à la page Settings de votre [application Auth0](https://manage.auth0.com/#/applications/) et ajoutez l’URL correspondante à **Allowed Callback URLs** et **Allowed Logout URLs**, selon la plateforme de votre application. Si vous utilisez un [domaine personnalisé](/docs/fr-ca/customize/custom-domains), remplacez `{yourAuth0Domain}` par la valeur de votre domaine personnalisé plutôt que par celle indiquée dans la page Settings.

<div id="ios">
  ##### iOS
</div>

```swift wrap lines theme={null}
{yourBundleIdentifier}://{yourAuth0Domain}/ios/{yourBundleIdentifier}/callback
```

<div id="macos">
  ##### macOS
</div>

```swift wrap lines theme={null}
{yourBundleIdentifier}://{yourAuth0Domain}/macos/{yourBundleIdentifier}/callback
```

Par exemple, si l’identifiant du bundle de votre application iOS était `com.example.MyApp` et que votre domaine Auth0 était `example.us.auth0.com`, cette valeur serait :

```text wrap lines theme={null}
com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
```

<Warning>
  Assurez-vous que le paramètre [**Méthode d’authentification de l’endpoint de jeton**](/docs/fr-ca/get-started/applications/confidential-and-public-applications) est défini sur `None`.
</Warning>

<div id="configure-custom-url-scheme">
  #### Configurer un schéma d’URL personnalisé
</div>

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 bundle de votre application comme schéma d’URL personnalisé, afin que l’URL de rappel et l’URL de déconnexion puissent rediriger vers votre application.

<div id="web-auth-login-ios-macos">
  ### Connexion avec Web Auth (iOS / macOS)
</div>

Importez le module `Auth0` dans le fichier où vous souhaitez afficher la page de connexion.

```swift lines theme={null}
import Auth0
```

Ensuite, affichez la page [Universal Login](/docs/fr-ca/authenticate/login/auth0-universal-login) dans l’action associée à votre bouton **Login**.

```swift lines theme={null}
Auth0
    .webAuth()
    .start { result in
        switch result {
        case .success(let credentials):
            print("Obtained credentials: \(credentials)")
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }
```

<div id="using-asyncawait">
  #### Utilisation d’async/await
</div>

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

<div id="using-combine">
  #### Utilisation de Combine
</div>

```swift lines theme={null}
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)
```

<div id="web-auth-logout-ios-macos">
  ### Déconnexion de Web Auth (iOS / macOS)
</div>

Pour déconnecter l’utilisateur, il faut effacer le <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur l’Authorization Server d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Universal+Login">Universal Login</Tooltip> cookie de session, puis supprimer les identifiants de l’utilisateur de votre application.

Appelez la méthode `logout()` dans l’action de votre bouton **Déconnexion**. Une fois le cookie de session effacé, [supprimez les identifiants de l’utilisateur](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#clear-stored-credentials).

```swift lines theme={null}
Auth0
    .webAuth()
    .logout { result in
        switch result {
        case .success:
            print("Session cookie cleared")
            // Supprimer les informations d'identification
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }
```

<div id="using-asyncawait">
  #### Utilisation d’async/await
</div>

```swift lines theme={null}
do {
    try await Auth0.webAuth().logout()
    print("Session cookie cleared")
    // Supprimer les identifiants
} catch {
    print("Failed with: \(error)")
}
```

<div id="using-combine">
  #### Utilisation de Combine
</div>

```swift lines theme={null}
Auth0
    .webAuth()
    .logout()
    .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)
```

<div id="sso-alert-box-ios-macos">
  ### Boîte d’alerte SSO (iOS / macOS)
</div>

<Frame>
  <img src="https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/c7JkfRnkm3HC12OqbNcpf/74cad82d875e50b2dca62088d44c2db9/sso-alert.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=05070055f9e61e5a35452d64e3029872" alt="undefined" width="323" height="200" data-path="docs/images/cdy7uua7fh8z/c7JkfRnkm3HC12OqbNcpf/74cad82d875e50b2dca62088d44c2db9/sso-alert.png" />
</Frame>

Consultez la [FAQ](https://github.com/auth0/Auth0.swift/blob/master/FAQ.md) pour en savoir plus sur la boîte d’alerte qui s’affiche par défaut lorsque vous utilisez Web Auth.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Consultez aussi [How to Create a Seamless Mobile SSO (Single Sign-On) Experience in iOS](https://developer.okta.com/blog/2022/01/13/mobile-sso) pour un aperçu détaillé.
</Callout>

<div id="next-steps">
  ## Prochaines étapes
</div>

Découvrez la plupart des fonctionnalités dans [Examples](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md) :

* [Store credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#store-credentials) : Stockez les identifiants de l’utilisateur de façon sécurisée dans le Keychain.
* [Check for stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#check-for-stored-credentials) : Vérifiez si l’utilisateur est déjà connecté au démarrage de votre application.
* [Retrieve stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-stored-credentials) : Récupérez les identifiants de l’utilisateur dans le Keychain et renouvelez-les automatiquement s’ils ont expiré.
* [Clear stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#clear-stored-credentials) : Supprimez les identifiants de l’utilisateur pour terminer le processus de déconnexion.
* [Retrieve user information](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-user-information) : Obtenez les renseignements les plus récents sur l’utilisateur à partir du endpoint `/userinfo`.
