【问题标题】:How to Get password_reset data from token?如何从令牌中获取密码重置数据?
【发布时间】:2017-11-20 09:53:33
【问题描述】:

我正在开发密码重置功能

到目前为止,电子邮件字段是必须填写的。但我想从重置表单中删除该电子邮件字段(我将通过使用数据库中的令牌获取并将其保存在重置表单的隐藏字段中)。

我可以看到 password_resets 表有这些密码重置请求记录以及 emailtokencreated_at 字段。

我正在尝试解码我​​将从 URL 获得的令牌,以与保存在数据库中的令牌进行比较。

我试过了,

//Hash::make
//$this->hasher->make
//Crypt::decrypt
//sha1
//md5

关于我将从 url 获得的令牌。

但我仍然无法获得完全匹配的令牌来与数据库表 password_resets 中存在的令牌进行比较。

我经历过这个link。其中说密码重置令牌现在存储为 sha256 的 bcrypt。但我不明白如何解码该令牌。

有人遇到这个问题吗? 任何想法? 有什么建议吗?

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.4 reset-password


    【解决方案1】:

    您无法解密哈希,因为哈希不是加密。哈希用于制作一条数据的唯一“指纹”。哈希不包含完整数据,因此您无法反转它。

    但如果已发布,password_resets 表应该包含令牌。一个简单的查询,如

    SELECT * FROM password_resets WHERE token = ?
    

    应该返回电子邮件地址。

    确保该表中有数据。

    【讨论】:

    • 我同意我无法解密它,但我可以从我拥有的令牌中创建一个。我需要该算法来创建保存在数据库中的同上令牌字符串。
    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2014-08-24
    相关资源
    最近更新 更多