Consulte Si incluyo un servicio de Olvidé mi contraseña, ¿para qué usar una contraseña? . Esa pregunta considera si podemos usar la función "Olvidé mi contraseña; por favor, envíeme un código de restablecimiento" como la forma principal de iniciar sesión en su cuenta. Los problemas son similares.
En particular, el principal inconveniente es que, desde una perspectiva de usabilidad, puede ser molesto tener que esperar a que aparezca el correo electrónico cada vez que el usuario inicia sesión.
Desde una perspectiva de seguridad, es (en mi opinión) un enfoque razonable, aunque no es perfecto. El principal inconveniente de la seguridad es que la cuenta de correo electrónico del usuario se convierte en un riesgo importante: si la cuenta de correo electrónico del usuario es hackeada, el atacante puede tener acceso a la cuenta (por ejemplo, si el usuario usa la misma contraseña para la cuenta de correo electrónico y su cuenta en su servicio).
Además, la forma en que maneja el restablecimiento de la contraseña se vuelve crítica para la seguridad. Si sigue la práctica estándar de enviar un correo electrónico al usuario con un enlace de restablecimiento, entonces ha creado una gran debilidad en su sistema: esto facilita que un atacante que haya comprometido la cuenta de correo electrónico del usuario luego robe la cuenta del usuario en su servicio. , sin adivinar, utilizando el proceso de restablecimiento de contraseña.
Por cierto, esto no es realmente una autenticación de 2 factores. No espere que esto ofrezca el mismo nivel de seguridad que la autenticación real de 2 factores, como la verificación de voz / SMS de Google. Por ejemplo, si alguien obtiene acceso a la computadora del usuario (p. Ej., La computadora del usuario es robada; el compañero de cuarto del usuario le está jugando una mala pasada), entonces esa persona podrá acceder a la cuenta del usuario en su servicio.
P.S. Consulte también ¿Qué problemas tiene este procedimiento de "recuperación de cuenta"? , La contraseña se envió por correo electrónico al momento del registro , Envíe la contraseña olvidada o envíe ¿Restablecer enlace, tanto como inseguro? . Y te recomiendo usar SSL en todo el sitio si puedes.