首页 文章

忘记密码重置页面:用户是否还需要输入用户名/电子邮件?

提问于
浏览
2

我正在为user management system的下一个版本重新实现"reset password"功能 . 它目前的工作方式是:

  • 用户输入用户名和电子邮件地址 .

  • 如果此信息正确,则生成随机令牌并将其存储在数据库中,并将带有令牌的链接发送到用户的文件电子邮件地址 .

  • 用户单击该链接,并选择"confirm"或"deny"重置请求 .

  • 如果他们确认重置请求,他们必须输入 email address ,以及他们的新密码(并重复新密码) . 这将与令牌一起发布到服务器 . 如果电子邮件地址与令牌匹配,并且重置请求尚未过期,则更新密码 .

我的问题是:我们真的需要用户在创建新密码时重新输入他们的电子邮件地址吗?如果随机令牌足够强大,是否需要这些额外的信息提供任何额外的安全性,还是只会恶化用户体验?

1 回答

  • 2

    我认为这样做没有任何 Value . 只需确保密钥安全即可 . 也许一个128位(即22个基本64位编码字符)安全随机 . 这看起来足够大了 . 还要为令牌生命周期添加超时 . 24小时似乎是安全和不便之间的妥协 .

    我喜欢将电子邮件地址添加到令牌的想法,以便您可以更智能地记录故障 .

相关问题