Melhor caminho para uma implementação de 'esqueci minha senha'? [fechadas]

Eu estou procurando o melhor método para implementar um recurso de "esqueci minha senha".

Eu saio com 2 ideias:

Quando o usuário clica na senha esquecida, o usuário é obrigado a digitar o nome de usuário, e-mail e talvez a data de nascimento ou sobrenome. Em seguida, um email com senha temporária será enviado para a conta de email do usuário. O usuário usa a senha temporária para efetuar login e redefine sua senha.

Semelhante, mas o email conteria um link para permitir que o usuário redefinisse sua senha.

Ou alguém pode me sugerir uma maneira melhor e segura? Eu também estou pensando em enviar a senha temporária ou link, forçar o usuário a redefinir a senha dentro de 24 horas, ou então a senha temporária ou link não será utilizável. Como fazer isso?

questionAnswers(10)

yourAnswerToTheQuestion