可能重复:
Forgot Password: what is the best method of implementing a forgot password function?
我正在为Web应用程序实现忘记密码。将向用户发送带有指向网页链接的邮件,以输入新密码。我想将链接的有效性限制为自创建以来最多24小时。我该如何实现呢?我应该如何生成此参数,以便不重用相同的链接,或者无法修改链接并重复使用它?
不确定这是否有用,但我使用的是Spring 3.1框架。
答案 0 :(得分:1)
对于此类功能,您需要创建基于时间戳的随机令牌,并使用忘记密码链接发送它。您需要按照以下提及步骤
为了获得更多安全保障,您可以创建更多步骤,以确保链接来自有效用户并且未被黑客攻击。
答案 1 :(得分:0)
常见的方法是在您的网址中包含生成的ID。该id将与db一起保存在db中,无论是创建还是何时过期。这样,您就可以创建后台任务来清除过期的ID。
答案 2 :(得分:0)
我要做的是:
优点:
答案 3 :(得分:0)
用户请求新密码后,生成一些随机令牌,例如使用RandomStringUtils.randomAlphanumeric(int)
。将此令牌存储在与请求密码重置的用户ID关联的数据库中。还会在创建时存储时间戳。
通过电子邮件向用户发送链接。此链接应包含您刚刚在URL中创建的令牌。
用户输入此链接后,系统会要求她输入新密码。如果您担心链接可能已泄露,请询问一些个人详细信息(电子邮件,名字等)
在服务器端,您:
查找与该令牌关联的令牌和用户ID
通过比较当前日期
存储新密码哈希