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

> Uso de Auth0.Swift en modo sin contraseña

# Auth0.swift: Autenticación sin contraseña

<Tooltip tip="Sin contraseña: forma de autenticación que no depende de una contraseña como primer factor." cta="Ver glosario" href="/es/docs/glossary?term=Passwordless">Sin contraseña</Tooltip> permite a los usuarios iniciar sesión usando solo una dirección de correo electrónico o un número de teléfono, lo que reduce la fricción de tener que recordar una contraseña. La autenticación sin contraseña puede realizarse por correo electrónico o por SMS, ya sea enviando al usuario un código o enviándole un enlace que contiene un código.

Para usar la autenticación sin contraseña, necesitas Auth0.Swift versión `1.20.0` o posterior.

<div id="how-passwordless-works">
  ## Cómo funciona el inicio de sesión sin contraseña
</div>

El inicio de sesión sin contraseña requiere dos pasos:

1. Solicitar el code
2. Introducir el code

Al usar enlaces, ocurre lo mismo, pero de una forma ligeramente distinta, porque el usuario no tiene que introducir el code. El code está incluido en la URL.

<div id="step-1-request-the-code">
  ### Paso 1: Solicitar el code
</div>

En este ejemplo, el code se solicita llamando a `startPasswordless` con el correo electrónico del usuario y el tipo de conexión. El parámetro `type` usará `Code` de forma predeterminada. Si la operación se realiza correctamente, probablemente mostrarás un aviso al usuario indicando que su code está por llegar y, quizás, lo redirigirás a una vista para introducirlo.

```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">
  ### Paso 2: Introduzca el code
</div>

Una vez que el usuario tenga un code, podrá introducirlo. Llame al método `login` y pase el correo electrónico del usuario, el code que recibió y el nombre de la conexión en cuestión. Si la operación se realiza correctamente, recibirá un objeto Credentials en la respuesta.

```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 usó SMS, la llamada sería similar a este ejemplo:

```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">
  ## Parámetros de autenticación sin contraseña
</div>

La autenticación sin contraseña puede iniciarse con distintos parámetros.

Por ejemplo:

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

o

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

| **Parámetro** | **Obligatorio** | **Descripción**                                                                                                                                                                                        |
| ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `email`       | obligatorio     | (String) Se requiere `email` o `phoneNumber` (no ambos), según cuál se vaya a utilizar.                                                                                                                |
| `phoneNumber` | obligatorio     | (String) Se requiere `email` o `phoneNumber` (no ambos), según cuál se vaya a utilizar.                                                                                                                |
| `type`        | opcional        | (String) El tipo de transacción sin contraseña que se va a usar: `.Code` o `.iOSLink`. El valor predeterminado es `.Code`.                                                                             |
| `connection`  | opcional        | (String) El nombre de la conexión que se va a usar para la autenticación sin contraseña. El valor predeterminado es `sms` para la sobrecarga de SMS o `email` para la sobrecarga de correo electrónico |
