Saltar al contenido principal
Las API se pueden usar en dos situaciones:
  • Al implementar y querer personalizar la página de inicio de sesión con auth0.js para interactuar con Auth0.
  • Cuando desea integrar el flujo de inicio de sesión en su aplicación.
Para obtener más información sobre cómo implementar la autenticación sin contraseña para Universal Login y el inicio de sesión integrado en distintos casos de uso, consulte Autenticación sin contraseña con Universal Login o Autenticación sin contraseña con inicio de sesión integrado.

Endpoints de autenticación sin contraseña

POST /passwordless/start

Debes habilitar el tipo de concesión Passwordless OTP en Auth0 Dashboard > Applications > Applications, en la configuración de tu aplicación, en Advanced Settings > Grant Types.
Puedes llamar al endpoint POST /passwordless/start para iniciar el proceso de autenticación sin contraseña tanto para Classic Login como para Embedded Login. Según los parámetros proporcionados al endpoint, Auth0 inicia el proceso de verificación del usuario enviando una de las siguientes opciones:
  • Un código de un solo uso por correo electrónico o SMS
  • Un enlace de un solo uso por correo electrónico
La llamada a la API debe tener la siguiente estructura: Si utiliza un enlace mágico, los usuarios recibirán un enlace generado por la API de autenticación. Los usuarios seleccionarán el enlace y activarán una llamada a {yourAuth0Tenant}.auth0.com/passwordless/verify-redirect. Auth0 redirigirá al usuario a la aplicación y el usuario iniciará sesión. Si utiliza un code, su aplicación deberá solicitar ese code y, a continuación, debe usar el endpoint /oauth/token o el método passwordlessLogin del SDK de Auth0.js para intercambiar ese code por tokens de autenticación.

POST /oauth/token

Si está implementando el inicio de sesión sin contraseña para aplicaciones nativas o aplicaciones web tradicionales, debe usar /oauth/token para intercambiar el código OTP por tokens de autenticación. No puede usar este endpoint desde aplicaciones de una sola página. Para ello, primero debe habilitar la concesión Passwordless OTP para su aplicación en Auth0 Dashboard > Applications > Applications, dentro de la configuración de su aplicación, en Advanced Settings > Grant Types. El usuario recibirá el código OTP y su aplicación nativa o web se lo solicitará. Cuando el usuario introduzca el código, puede completar el flujo de autenticación llamando al endpoint /oauth/token con los siguientes parámetros: Si todo sale bien, Auth0 devolverá una respuesta similar a la siguiente:
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token":"eyJz93a...k4laUWw",
"refresh_token":"GEbRxBN...edjnXbL",
"id_token":"eyJ0XAi...4faeEoQ",
"token_type":"Bearer",
"expires_in":86400
}
Luego, puedes decodificar el para obtener información sobre el usuario, o usar el para llamar a tu API con normalidad.

Uso de Auth0.js

Al implementar la autenticación sin contraseña en aplicaciones de una sola página o en una página personalizada de Universal Login, debe usar Auth0.js y el método passwordlessLogin incluido. La implementación es compleja, por lo que le recomendamos usar la biblioteca en lugar de llamar directamente a las API.

Límites de velocidad en endpoints sin contraseña

Las funciones de limitación de velocidad y de Auth0 solo consideran la IP de la máquina que realiza la llamada a la API. Cuando la llamada a la API se realiza desde un servidor backend, normalmente querrá que Auth0 tenga en cuenta la IP del usuario final, no la del servidor. Auth0 admite especificar un encabezado auth0-forwarded-for en las llamadas a la API, pero solo se tiene en cuenta cuando:
  • la llamada a la API se realiza para una aplicación confidencial.
  • la llamada a la API incluye el .
  • la opción Confiar en el encabezado IP del está activada.
Para obtener una explicación completa, lea Evitar problemas comunes con el flujo de contraseña del propietario del recurso y la protección contra ataques.

Personalizar MFA

Personaliza con la API sin contraseña. Cuando tu aplicación llama al endpoint /oauth/token para solicitar un token de acceso, el devuelve un error mfa_required que proporciona:
  • El mfa_token que necesitas para llamar a la API de MFA para la inscripción y los desafíos.
  • El parámetro mfa_requirements, que proporciona el type del factor que tu aplicación admite para los desafíos.
{
  "error": "mfa_required",
  "error_description": "Multifactor authentication required",
  "mfa_token": "Fe26...Ha",
  "mfa_requirements": {
    "challenge": [
      { "type": "otp" },
      { "type": "push-notification" },
      { "type": "phone" },
      { "type": "recovery-code" }
    ]
  }
}
Usa el mfa_token para llamar al endpoint mfa/authenticator, enumerar todos los factores en los que el usuario se ha inscrito y hacer coincidir el mismo type que admite tu aplicación. También debes obtener el authenticator_type correspondiente para emitir desafíos:
[
  {
    "type": "recovery-code",
    "id": "recovery-code|dev_qpOkGUOxBpw6R16t",
    "authenticator_type": "recovery-code",
    "active": true
  },
  {
    "type": "otp",
    "id": "totp|dev_6NWz8awwC8brh2dN",
    "authenticator_type": "otp",
    "active": true
  }
]
Refuerce el desafío de MFA llamando al endpoint request/mfa/challenge. Personalice aún más su flujo de MFA con Auth0 Actions. Para obtener más información, consulte Actions Triggers: post-challenge - API Object.