我正在写一个密码重置页面。
逻辑:
- 用户请求密码
- 它通过附加到 /reset/ 的唯一字符串(过期)发送到他们的电子邮件
$string
- 在我的控制器中的页面上,我检查字符串是否与数据库中的一个匹配,如果是,那么我将其与 userId 匹配
- 如果是这样,我允许他们输入新的通行证
- 如果他们 POST 到同一个控制器并搞砸并输入 2 个不正确的密码,我会丢失带有重置字符串的原始 URL,所以现在我不知道要在数据库中更新哪个用户
我的选择(我能想到的):
- 在会话中设置字符串和用户 ID 并在控制器中查找(并确保在成功重置通行证后将其清除)
- 在上面的第 4 步中,我将在表单的隐藏输入字段中添加用户 ID,并使用该 ID 进行 POST 以检查它是哪个用户