我想设置一个 php 密码恢复脚本,使用 24 小时后过期的 token 。但我不知道该怎么做。我现在有 SHA1
加密的用户密码。我想我想做的就是将 token 附加到 URL,当用户请求重设密码时发送给用户。但是我该如何正确地做到这一点以及我需要在数据库中存储什么?
最佳答案
- 当您的用户请求重置密码时,生成一个 token 并计算其到期日期
- 将 token 及其到期日期存储在用户表中该用户的单独列中
- 向用户发送一封包含重置链接的电子邮件,并将 token 附加到其 URL
- 当您的用户点击链接时,从您的 URL 中获取 token (可能使用
$_GET['token']
) - 根据您的用户表验证 token
- 检查它是否尚未过期
- 如果它已过期,则使其失效,可能通过清除字段,并允许用户重新发送
- 如果 token 有效且可用,请向用户出示您的密码重置表单
- 验证和更新密码并清除 token 和到期字段
关于PHP - 如何实现密码重置和 token 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164978/