Estoy escribiendo una capa de seguridad para mi aplicación y me gustaría su opinión sobre la actualización de las direcciones de correo electrónico de los usuarios (también se usa para el inicio de sesión).
Me interesa saber de alguien que haya escrito una solicitud con requisitos similares. ¿Cómo lo harías? Aquí hay algunas maneras en las que pensé, pero sospecho que me estoy perdiendo algo:
Enfoque uno
- Actualice la dirección y envíe un correo electrónico de confirmación a la nueva dirección
- Si la dirección no se confirma con 48 horas, suspende
- Es fácil.
- Si la nueva dirección es incorrecta, el usuario queda bloqueado de la cuenta.
- Alguien puede secuestrar la cuenta cambiando la dirección del usuario.
Enfoque dos
- Actualice la dirección y almacene el valor anterior temporalmente
- Envía un correo electrónico de notificación a la dirección anterior con una opción para revocar el cambio
- Envíe un correo electrónico de confirmación a la nueva dirección
- Restablecí la dirección anterior si el usuario revoca el cambio (a través del correo electrónico de notificación)
-
Si el cambio no se revoca, pero la nueva dirección no se confirma dentro de las 48 horas, suspendo la cuenta.
- seguro
- Mucho más trabajo
Enfoque tres
- No actualice la dirección, pero almacene el nuevo valor temporalmente
- Envíe un correo electrónico de confirmación a la dirección anterior solicitando la confirmación del cambio.
- Si se confirma el cambio, realice la actualización y envíe un correo electrónico de confirmación a la nueva dirección.
-
Si la nueva dirección no se confirma en 48 horas, suspenda la cuenta.
- seguro
- Mucho más trabajo
Es mejor estar lo más seguro posible, pero no quiero dejar de lado al usuario dándole 1001 cosas que hacer solo para cambiar una dirección de correo electrónico.
También pueden tener direcciones de correo electrónico secundarias , no se utilizan para iniciar sesión, pero sí para otros fines, y no estoy seguro de cómo manejar las actualizaciones de esas direcciones. Las ideas son bienvenidas.