> ## 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 bien démarrer

# Auth0.swift

<Card title="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 GitHub**](https://github.com/auth0/Auth0.swift)

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

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

* [Démarrage rapide](/fr-CA/docs/quickstart/native/ios-swift/interactive) : Montre comment intégrer Auth0.swift dans une application iOS / macOS à partir de zéro.
* [Exemple d’application](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)
  * [Gestionnaire d’identifiants](https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager)
  * [Client de l’Authentication API](https://auth0.github.io/Auth0.swift/documentation/auth0/authentication)
  * [Client de la Management API (utilisateurs)](https://auth0.github.io/Auth0.swift/documentation/auth0/users)
* [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) Explorez notre site de documentation pour en savoir plus sur Auth0.

<div id="getting-started">
  ## Prise en main
</div>

<div id="requirements">
  ### Exigences
</div>

* iOS 13.0+ / macOS 11.0+ / tvOS 13.0+ / watchOS 7.0+
* Xcode 14.x
* Swift 5.7+

<Warning>
  Consultez la [politique de prise en charge](https://github.com/auth0/Auth0.swift/tree/master#support-policy) 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**.
</Warning>

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

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

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 :

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

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

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

Ajoutez la ligne suivante dans votre `Podfile` :

```bash lines theme={null}
pod 'Auth0', '~> 2.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" ~> 2.0
```

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

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

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

Auth0.swift a besoin de l’**<Tooltip tip="ID client : valeur d’identification attribuée à votre ressource enregistrée par Auth0." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Client+ID">ID client</Tooltip>** 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é](/fr-CA/docs/customize/custom-domains), utilisez la valeur de votre <Tooltip tip="Domaine personnalisé : domaine tiers avec un nom spécialisé ou personnalisé." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=custom+domain">domaine personnalisé</Tooltip> au lieu de celle indiquée sur la page Settings.

<div id="configure-client-id-and-domain-with-a-plist">
  #### Configurez l’ID client et le domaine dans 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 l’ID client et le domaine par code
</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="for-the-management-api-client-users">
  ##### Pour le client de la Management API (Utilisateurs)
</div>

```swift lines theme={null}
Auth0
    .users(token: credentials.accessToken, 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 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 <Tooltip tip="Cookie de session : élément qui, lorsqu’il est présent, permet de considérer l’utilisateur comme authentifié." cta="Voir le glossaire" href="/fr-CA/docs/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 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](https://manage.auth0.com/#/applications/) 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é](/fr-CA/docs/customize/custom-domains), remplacez `{yourAuth0Domain}` par la valeur de votre domaine personnalisé plutôt que par celle indiquée sur 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 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 [**Token Endpoint Authentication Method**](/fr-CA/docs/get-started/applications/confidential-and-public-applications/view-application-type) est réglé 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 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.

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

Importez le module `Auth0` dans le fichier à partir duquel vous souhaitez afficher la page de connexion.

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

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

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

#### Utiliser async/await

```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">
  #### Utiliser 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 Web Auth (iOS / macOS)
</div>

La déconnexion de l’utilisateur consiste à effacer le cookie de session de <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, 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](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#clear-stored-credentials).

```swift lines theme={null}
Auth0
    .webAuth()
    .clearSession { result in
        switch result {
        case .success:
            print("Session cookie cleared")
            // Supprimer les identifiants
        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().clearSession()
    print("Session cookie cleared")
    // Supprimer les identifiants
} catch {
    print("Failed with: \(error)")
}
```

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

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

<div id="sso-alert-box-ios-macos">
  ### Fenêtre 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 fenêtre d’alerte qui s’affiche par défaut lorsque vous utilisez Web Auth.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Consultez également [How to Create a Seamless Mobile SSO (Single Sign-On) Experience in iOS](https://developer.okta.com/blog/2022/01/13/mobile-sso) pour une vue d’ensemble détaillée.
</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) :

* [Stocker les identifiants](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#store-credentials) : Stockez de façon sécurisée les identifiants de l’utilisateur dans le Trousseau.
* [Vérifier la présence d’identifiants stockés](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.
* [Récupérer les identifiants stockés](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-stored-credentials) : Récupérez les identifiants de l’utilisateur à partir du Trousseau, en les renouvelant automatiquement s’ils ont expiré.
* [Effacer les identifiants stockés](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.
* [Récupérer les informations de l’utilisateur](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-user-information) : Obtenez les informations les plus récentes sur l’utilisateur à partir du point de terminaison `/userinfo`.
