【发布时间】:2019-05-02 23:46:58
【问题描述】:
考虑这种情况:
- 用户通过电子邮件收到重置密码链接。
- 他单击电子邮件中的“重置密码”链接,由于 URL 中的令牌,他将被重定向到只有他可以访问的密码重置页面。众所周知,此令牌与用户的电子邮件一起存储在 password_resets 表中。
我想让对这个页面的访问只关注点击他电子邮件中链接的用户,所以我必须将 URL 中的令牌与存储在“password_resets”表中的令牌进行比较,并且 Laravel 使用哈希器在存储令牌之前对其进行加密,并且无法比较两个令牌。 你有什么想法可以解决这个问题吗?
【问题讨论】:
-
为什么需要手动比较token? Laravel 会为你做到这一点。
-
是的,我知道,但我想将重置密码页面的访问权限授予唯一在我的数据库中存在令牌的用户,让我们举个例子:假设单击重置按钮的用户他保留的电子邮件将被重定向到这个网址:www.example.com/password/reset/123456,我只想让他看到这个页面,因为这个令牌是有效的并且存在于数据库中,并且当其他用户类型:例如 www.example.com/password/reset/123 他会看到一条错误消息,告诉他这个令牌在 DB 中不存在,这就是我想比较两个令牌的原因。
-
打开链接的人需要再次输入与令牌进行比较的电子邮件地址。如果你能准确猜出令牌,我会给你钱 :) 除非你可以访问同一用户的收件箱。
-
感谢您的回答,但我不让他重新输入他的电子邮件,我希望他只访问具有 2 个输入的页面,输入密码,就像在 stackoverflow 的系统中实现的那样,