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

> Utilisation d’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="Consulter le glossaire" href="/fr-CA/docs/glossary?term=Passwordless">Passwordless</Tooltip> permet aux utilisateurs de se connecter uniquement à l’aide d’une adresse de courriel ou d’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 contenant 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

Lorsque vous utilisez des liens, le principe est le même, mais fonctionne légèrement différemment, puisque l’utilisateur n’a pas à saisir lui-même le 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, appelez `startPasswordless` avec le 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 message à l’utilisateur pour l’informer que son code est en route, puis vous le redirigerez peut-être vers une vue où il pourra 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)
       }
   }
```

<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` et transmettez le courriel de l’utilisateur, le code qu’il a reçu et le nom de la connexion concernée. Si l’opération réussit, 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 avez utilisé le SMS, l’appel ressemblerait plutôt à 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)
       }
   }
```

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

L’authentification Passwordless peut être lancée à l’aide de 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 requis (mais pas les deux), selon celui qui sera utilisé.                                                                                                 |
| `phoneNumber` | obligatoire     | (String) `email` ou `phoneNumber` est requis (mais pas les deux), selon celui qui sera utilisé.                                                                                                 |
| `type`        | facultatif      | (String) Type de transaction Passwordless à utiliser : `.Code` ou `.iOSLink`. La valeur par défaut est `.Code`.                                                                                 |
| `connection`  | facultatif      | (String) Nom de la connexion à utiliser pour l’authentification Passwordless. La valeur par défaut est `sms` pour la version surchargée SMS, ou `email` pour la version surchargée par courriel |
