He estado trabajando en mi primer proyecto, y mis usuarios registrados iniciales no han sido particularmente pegajosos. Me gustaría enviarles un correo electrónico con algunas noticias e información y hacer que inicien sesión de forma instantánea cuando pulsen el enlace de llamada a la acción. Estaba pensando en generar un código de autenticación con random_bytes()
de PHP y almacenarlo en una tabla con su correspondiente user_id
.
Básicamente, el correo electrónico sería:
Hey oldUser2017, newUser2018 te envió un mensaje. Haga clic en
<a href="http://mysortofokproject.com/message/20992?authCode=657f8b8da628ef83cf69101b6817150>here</a>
para verlo al instante y ni siquiera tener que iniciar sesión o restablecer su contraseña o algo molesto!
Y en el backend
userId = getUserIdFromAuthCode($get['authCode'])
if(userId){
$session = getUserDetailsFromUserId(userId)
}
Dado que así es como autentificamos una dirección de correo electrónico y activamos una cuenta:
- ¿Qué sería tan malo si yo hiciera esto?
- ¿Es
random_bytes()
de PHP lo suficientemente bueno, y qué longitud usaría? - ¿Debería caducar?