> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-eval-flywheel-swift-quickstart.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth0.swift : Authentification sans mot de passe

> Utilisation d’Auth0.Swift en mode sans mot de passe

L’authentification sans mot de passe permet aux utilisateurs de se connecter uniquement avec une adresse courriel ou un numéro de téléphone pour plus de simplicité (pas de mot passe). L’authentification sans mot de passe peut se faire par courriel ou par SMS, en envoyant à l’utilisateur un code ou un lien contenant un code.

Pour utiliser l’authentification sans mot de passe, vous avez besoin de la version `1.20.0` d’Auth0.Swift ou d’une version supérieure.

## Comment fonctionne le mode sans mot de passe

Le mode sans mot de passe comprend deux étapes :

1. Demander le code
2. Saisir le code

Il en est de même avec des liens, mais de façon légèrement différente, car l’utilisateur n’a pas besoin de saisir de code. Ce code est inclus dans l’URL.

### Étape 1 : Demander le code

Dans cet exemple, la demande de code se fait en appelant `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 informerez probablement l’utilisateur que son code est en cours d’acheminement, et peut-être le diriger vers la page où il devra saisir ce code.

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

### Étape 2 : Saisir le code

Une fois que l’utilisateur a reçu un code, il peut le saisir. Appelez la méthode `login` et transmettez l’adresse courriel de l’utilisateur, le code qu’il a reçu et le nom de la connexion en question. 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 utilisez SMS, l’appel sera similaire à cet exemple :

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

## Paramètres sans mot de passe

L’authentification sans mot de passe peut être initié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** | **Requis** | **Description** | | --- | --- | --- |
\| `email` | requis | (Chaîne) Soit «`email` soit `phoneNumber` est requis (pas les deux), selon celui qui sera utilisé. |
\| `phoneNumber` | requis | (Chaîne) Soit `email` ou `phoneNumber` est requis (pas les deux), selon celui qui sera utilisé. |
\| `type` | facultatif | (Chaîne) Le type de transaction sans mot de passe à utiliser, soit `.Code` ou `.iOSLink`. La valeur par défaut est `.Code`. |
\| `connection` | facultatif | (Chaîne) Le nom de la connexion à utiliser pour l’authentification sans mot de passe. Par défaut, la valeur est `sms` pour la surcharge SMS ou `email` pour la surcharge courriel |
