> ## 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.

> Utiliser Auth0.Swift en mode Passwordless

# Auth0.swift: Authentification Passwordless

<Tooltip tip="Passwordless : forme d’authentification qui ne repose pas sur un mot de passe comme premier facteur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Passwordless">Passwordless</Tooltip> permet aux utilisateurs de se connecter uniquement avec une adresse courriel ou un numéro de téléphone, ce qui réduit les obstacles liés à la mémorisation d’un mot de passe. L’authentification Passwordless peut se faire par courriel ou par SMS, soit en envoyant un code à l’utilisateur, soit en lui envoyant un lien qui contient un code.

Pour utiliser l’authentification Passwordless, vous devez disposer d’Auth0.Swift version `1.20.0` ou ultérieure.

<div id="how-passwordless-works">
  ## Fonctionnement de Passwordless
</div>

Passwordless nécessite deux étapes :

1. Demander le code
2. Saisir le code

Lorsqu’on utilise des liens, le principe est le même, mais d’une façon légèrement différente, puisque l’utilisateur n’a pas à saisir lui-même un code. Le code est inclus dans l’URL.

<div id="step-1-request-the-code">
  ### Étape 1 : Demander le code
</div>

Dans cet exemple, pour demander le code, on appelle `startPasswordless` avec l’adresse courriel de l’utilisateur et le type de connexion. Le paramètre `type` prendra par défaut la valeur `Code`. En cas de réussite, vous afficherez probablement un avis à l’utilisateur pour l’informer qu’il recevra son code sous peu, puis vous le redirigerez peut-être vers une vue où il pourra le saisir.

```swift lines theme={null}
Auth0
   .authentication()
   .startPasswordless(email: "support@auth0.com")
   .start { result in
       switch result {
       case .success:
           print("Sent OTP to support@auth0.com!")
       case .failure(let error):
           print(error)
       }
   }
```

<div id="step-2-input-the-code">
  ### Étape 2 : Saisir le code
</div>

Une fois que l’utilisateur a reçu un code, il peut le saisir. Appelez la méthode `login`, puis transmettez l’adresse courriel de l’utilisateur, le code qu’il a reçu et le nom de la connexion concernée. En cas de réussite, vous recevrez un objet Credentials dans la réponse.

```swift lines theme={null}
Auth0
   .authentication()
   .login(
       email: "support@auth0.com", 
       code: "123456", 
       audience: "https://myapi.com/api",
       scope: "openid email")
   .start { result in
       switch result {
       case .success(let credentials):
           print("Access Token: \(credentials.accessToken)")
       case .failure(let error):
           print(error)
       }
   }
```

Si vous utilisiez le SMS, la requête ressemblerait plutôt à cet exemple-ci :

```swift lines theme={null}
Auth0
   .authentication()
   .login(
       phoneNumber: "+4591131761367", 
       code: "123456", 
       audience: "https://myapi.com/api",
       scope: "openid email")
   .start { result in
       switch result {
       case .success(let credentials):
           print("Access Token: \(credentials.accessToken)")
       case .failure(let error):
           print(error)
       }
   }
```

<div id="passwordless-parameters">
  ## Paramètres de Passwordless
</div>

L’authentification Passwordless peut être lancée avec différents paramètres.

Par exemple :

`.startPasswordless(email: String, type: String, connection: String)`

ou

`.startPasswordless(phoneNumber: String, type: String, connection: String)`

| **Paramètre** | **Obligatoire** | **Description**                                                                                                                                                                   |
| ------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `email`       | obligatoire     | (String) `email` ou `phoneNumber` est obligatoire (pas les deux), selon celui qui est utilisé.                                                                                    |
| `phoneNumber` | obligatoire     | (String) `email` ou `phoneNumber` est obligatoire (pas les deux), selon celui qui est utilisé.                                                                                    |
| `type`        | facultatif      | (String) Le type de transaction Passwordless à utiliser, soit `.Code`, soit `.iOSLink`. La valeur par défaut est `.Code`.                                                         |
| `connection`  | facultatif      | (String) Le nom de la connexion à utiliser pour l’authentification Passwordless. La valeur par défaut est `sms` pour la surcharge SMS, ou `email` pour la surcharge par courriel. |
