Autenticación con enlace mágico
Aprende a implementar enlaces mágicos para inicios de sesión sin contraseña, registro por invitación y invitaciones a miembros de organizaciones usando tokens de un solo uso.
Aprende a implementar enlaces mágicos para inicios de sesión sin contraseña, registro por invitación y invitaciones a miembros de organizaciones usando tokens de un solo uso.
Un enlace mágico es un método de autenticación sin contraseña donde un usuario recibe una URL de inicio de sesión de un solo uso por correo electrónico (o SMS). Al hacer clic en el enlace, se inicia sesión sin requerir una contraseña.
Estas son algunas características clave de seguridad de los enlaces mágicos:
Un enlace mágico consiste en:
Por ejemplo, un enlace mágico podría tener este aspecto:
Para crear un enlace mágico, necesitas generar un token de un solo uso, enviarlo de manera segura al usuario y luego validarlo cuando el usuario haga clic en el enlace.
Utiliza la API de gestión de Logto para crear un token de un solo uso.
Ejemplo de carga útil del cuerpo de la solicitud:
Después de obtener el token de un solo uso, puedes componer un enlace mágico y enviarlo a la dirección de correo electrónico del usuario final. El enlace mágico debería al menos contener el token y el correo electrónico del usuario como parámetros, y debería navegar a una página de destino en tu propia aplicación. Por ejemplo: https://yourapp.com/landing-page.
Aquí hay un ejemplo simple de cómo podría verse el enlace mágico:
Nota:
Los nombres de los parámetros en el enlace mágico pueden ser completamente personalizados. Puedes agregar información adicional al enlace mágico basado en los requisitos de tu aplicación, así como codificar todos los parámetros de la URL.
Después de que el usuario final haga clic en el enlace mágico y navegue a tu aplicación, puedes extraer los parámetros token y email de la URL, y luego llamar a la función signIn() del SDK de Logto para activar el flujo de autenticación.
Para más detalles, consulta los Docs de Logto - Enlace Mágico (Token de un solo uso).
Los enlaces mágicos pueden reemplazar el paso de autenticación de primer factor, pero no pueden omitir la autenticación multifactor (MFA).
En Logto, al generar un enlace mágico con un token de un solo uso, no necesitas especificar si es para inicio de sesión o registro. Determinamos automáticamente el flujo basado en el estado de registro del correo electrónico:
Logto admite los siguientes escenarios con enlaces mágicos:
Actualmente no es compatible:
Déjanos saber si necesitas una personalización adicional.
Para nuevos productos (por ejemplo, herramientas de IA) en pruebas internas o para herramientas internas, es posible que desees desactivar el registro público y permitir solo a usuarios específicos acceder a tu aplicación. Para implementar esto con Logto:
Ve a Consola > Experiencia de inicio de sesión > Inicio de sesión y registro > Opciones avanzadas, y desactiva "**Habilitar registro de usuario" para cerrar el registro público.

Recoge las direcciones de correo electrónico de los usuarios que deseas invitar (por ejemplo, a través de tu sitio web o recomendaciones de usuarios existentes).
Crea y envía el enlace de invitación mágica como se describe arriba (solicita el token de un solo uso, compón el enlace mágico, activa la autenticación a través del SDK de Logto).
Nota: Establece un tiempo de expiración para el enlace de invitación. Se recomienda hacer el enlace válido por al menos un día. Usa el siguiente cuerpo de solicitud para generar el token de un solo uso:
Envía el enlace mágico al correo electrónico del usuario (por ejemplo, https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personaliza la plantilla de correo electrónico, como:

Cuando los usuarios hagan clic en "Aceptar la invitación", se registrarán automáticamente en tu servicio, incluso con el registro público deshabilitado. Esto se conoce como "Invitación a usuario objetivo".
Para productos multi-inquilino (por ejemplo, aplicaciones SaaS como Slack, GitHub, Vercel), proporciona un proceso de invitación de miembros sin problemas para gestionar las membresías organizacionales. Usa enlaces mágicos para tasas de conversión más altas en invitaciones de miembros.
Sigue los Docs de Logto para implementar la creación de organizaciones, control de acceso basado en roles de organización y gestión de organizaciones: Organizaciones de Logto.
Configura el flujo de trabajo "Invitar miembros" en tu producto. Ejemplo:

Sigue esta guía para Invitar a Miembros de la Organización. Nota: Al invitar a miembros, asegúrate de que la carga de la solicitud incluya:
context: jitOrganizationIds para especificar qué organización(es) se unirá el usuario.expiresIn más largo (por ejemplo, 2 días o 1 semana) para permitir tiempo suficiente a los usuarios para aceptar la invitación.Ejemplo de carga de solicitud:
Envía el enlace de invitación al correo electrónico del usuario (por ejemplo, https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personaliza tu plantilla de correo electrónico, por ejemplo:

Cuando los usuarios hagan clic en "Aceptar la invitación", se registrarán o iniciarán sesión automáticamente y se unirán a la organización.
¿Qué sucede si un usuario ya tiene sesión iniciada y hace clic en otro enlace mágico?
Para manejar correctamente los conflictos de cuenta, asegúrate de lo siguiente:
login en el "prompt de inicio de sesión": No configures el prompt de inicio de sesión incluyendo el login en él. Si se configura incorrectamente, Logto iniciará sesión automáticamente en la cuenta asociada con el token del enlace mágico, omitiendo el prompt de cambio de cuenta.signIn(), especifica el parámetro clearTokens: false para evitar borrar los tokens existentes. Si se usa esta opción, asegúrate de borrar manualmente los tokens en la página de callback de inicio de sesión.Después de una configuración adecuada, la experiencia del usuario será la siguiente:

Cuando los usuarios hagan clic en un enlace mágico inválido, serán redirigidos a una página de error con una explicación clara del problema. A continuación se muestran los posibles escenarios de error y sus mensajes:
| Nombre | Descripción |
|---|---|
| token_not_found | Token activo no encontrado con el correo electrónico y el token dados. |
| email_mismatch | Discrepancia del correo electrónico con el token dado. |
| token_expired | El token ha expirado. |
| token_consumed | El token ha sido consumido. |
| token_revoked | El token ha sido revocado. |
| cannot_reactivate_token | No se puede reactivar el token. |
Cada página de error proporcionará un mensaje específico, ayudando a los usuarios a entender la razón detrás del enlace mágico inválido y guiándolos en los próximos pasos. Por ejemplo:

Logto ofrece seguridad a nivel empresarial a través de flujos de inicio de sesión sin contraseña y flexibles usando enlaces mágicos. Es una forma simple pero poderosa de crear experiencias de usuario fluidas, ya sea invitando a usuarios a unirse a una organización, permitiéndoles crear cuentas sin esfuerzo o proporcionando una autenticación sin complicaciones. Y debido a que Logto maneja situaciones complicadas como conflictos de cuenta y tokens expirados, tus usuarios obtienen un proceso seguro y sin frustraciones cada vez.
¿Listo para modernizar tu gestión de identidad y acceso con autenticación a prueba de balas?