La mejor forma de confirmación de los enlaces de correo electrónico para enviar ID

StackOverflow https://stackoverflow.com/questions/212758

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo un sitio web que le envía a alguien un correo electrónico de confirmación.

Ahora, en el correo electrónico, me gustaría tener un enlace en el que el usuario tiene que hacer clic para confirmar que recibió el correo.

Me gustaría incluir la contraseña del usuario (o algún código aleatorio) en la dirección de confirmación, para que el usuario no tenga que ingresarla manualmente, pero si lo hago, la contraseña terminará en el navegador. la historia y los archivos de registro.

¿Hay alguna otra forma de obtener un enlace de confirmación en un correo electrónico para enviar información como un nombre de usuario y contraseña, sin que termine en el enlace de alguna manera?
¿Es posible, por ejemplo, tener un formulario de entrada en un correo electrónico y enviar la contraseña como POST en lugar de GET?

¿Fue útil?

Solución

La forma en que esto generalmente funciona es que el correo electrónico de confirmación contiene un enlace que incluye un GUID (Globally Unique Identifier) ??de algún tipo. El GUID está asociado con la cuenta del usuario. Cuando se hace clic en el enlace, la aplicación web simplemente establece el indicador de confirmación e inicia la sesión del usuario utilizando el GUID en lugar de la combinación habitual de nombre de usuario y contraseña.

Otros consejos

Calcule un resumen hexadecimal (por ejemplo, md5) en función de la ID del usuario y la hora actual. Consista este código en una base de datos o escriba un archivo con él como nombre de archivo, e incluya el ID y la dirección de correo electrónico del usuario.

Configure un controlador http (cgi, php, servlet, etc ...) para recibir solicitudes GET basadas en un URI que se parece a " / confirm_email / {hexdigest} " o " /confirm_email.php? code = {hexdigest} "

Cuando un usuario necesite confirmar su correo electrónico, envíe un enlace al servlet anterior que contiene el resumen.

Cuando alguien se vincula a este URI, recupere el registro o archivo de la base de datos con el resumen correspondiente. Si se encuentra uno, la dirección de correo electrónico contenida ahora se verifica.

Si desea hacerlo más robusto: cuando un usuario verifica su correo electrónico, cambie el resumen hexadecimal para que solo sea un hash de la dirección de correo electrónico sin sal. Luego puede probar si el correo electrónico de alguien ha cambiado y necesita volver a verificar.

Puedes pasar el GUID en el correo electrónico. Ese GUID en particular tiene que estar asociado con el usuario. Luego, cuando el usuario hace clic en el enlace, el GUID se envía de vuelta a la aplicación y puede capturarse como QueryString. Extraiga el GUID una actualización que el usuario ha sido aprobado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top