【发布时间】:2019-03-07 00:28:29
【问题描述】:
默认情况下,通过电子邮件发送到电子邮件的密码重置令牌与保存到数据库的密码重置令牌不同。我已经使用Hasher::make() 和hash_hmac('sha256', $token, env('APP_KEY')) 对其进行哈希处理,然后将该令牌与数据库进行比较,但没有用。我应该怎么做才能将电子邮件令牌转换为数据库令牌或比较它们?
我也试过了
public function convertToken($token)
{
if (Str::startsWith($key = env('APP_KEY'), 'base64:')) {
$key = base64_decode(substr($key, 7));
}
return hash_hmac('sha256', $token, $key);
}
【问题讨论】:
-
为什么不使用 laravel 存储库中的样板代码?
-
你想用这个方法做什么?您是否尝试返回散列值以在电子邮件中发送或返回散列值以与数据库中的值进行比较?
-
@apokryfos 我正在创建用于密码重置的 api。并且样板似乎不适用于restful api,而是使用模板引擎
-
@GeorgeHanson
$token是我从密码重置发送给我的电子邮件中得到的,我认为在执行convertToken($token)之后,我将能够将该令牌转换为它的内容数据库
标签: laravel bcrypt laravel-5.7 laravel-authentication