The Daily Commit · Edición de sección Portada PHP AI Dev EN DE FR ES

The Php Times

Lecturas — Ecosistema

Inicio de sesión sin contraseña con soporte de segundo factor de Fortify en Laravel


La nota presenta un paquete de Laravel que añade autenticación sin contraseña mediante magic links y códigos de un solo uso, con un traspaso a Fortify para los flujos de doble factor.

LARAVEL NEWS, 10 de julio de 2026 seleccionado por Charlie

Merece la pena leerlo si trabajas en la UX de acceso o en seguridad, sobre todo porque el paquete intenta evitar que los escáneres de correo consuman los enlaces antes que el usuario.

Email Magic Link for Laravel es un paquete de autenticación sin contraseña que permite a los usuarios iniciar sesión mediante enlaces enviados por correo electrónico o códigos de un solo uso. El paquete funciona de forma independiente o junto con Laravel Fortify y no requiere dependencias adicionales más allá del framework en sí.

El paquete resuelve un problema de seguridad crítico en los sistemas de magic links tradicionales: los escáneres de correo y dispositivos de seguridad suelen recuperar URLs automáticamente antes de que los usuarios las vean, consumiendo tokens de uso único sin intención. Email Magic Link lo resuelve dividiendo el flujo en dos pasos: la solicitud GET solo muestra una página de confirmación, mientras que el token se consume únicamente mediante un POST explícito desde esa página, que los escáneres no pueden activar. Los tokens y códigos se almacenan solo como valores hash (HMAC-SHA256 con clave), nunca en texto plano, con protección contra fuerza bruta individual por token (máximo 5 intentos por defecto) y consumo seguro sin condiciones de carrera.

Cuando los usuarios tienen autenticación de dos factores habilitada a través de Fortify, la verificación del magic link no los autentica automáticamente. En su lugar, se redirigen al desafío de dos factores de Fortify como usuarios no autenticados, lo que evita escenarios de evasión. Para clientes SPA y móviles, las respuestas JSON indican si los usuarios necesitan verificación de dos factores o están completamente autenticados.

Los desarrolladores pueden emitir enlaces y códigos de forma programática sin enviarlos automáticamente, permitiendo entrega personalizada a través de SMS, notificaciones push o mailables personalizados mediante la fachada EmailMagicLink. El paquete incluye una ResendGuard para prevenir abusos, con tiempos de espera escalonados (30 segundos, 60 segundos, 120 segundos) y un límite móvil de cinco intentos por hora. Un comando programado limpia automáticamente los tokens expirados diariamente.

El paquete requiere PHP 8.4 y Laravel 13, siendo Fortify opcional. La instalación se realiza mediante `composer require pushery/email-magic-link-for-laravel`, seguido del comando de instalación y migraciones de base de datos.

Leer la fuente original (en inglés) ↗

Valora este artículo: 0

Tribuna de lectores

Aún no hay aportaciones — abre el debate.

← Ecosistema — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Edición de pantalla · Información legal · Política de privacidad