默认情况下,通过电子邮件发送到电子邮件的密码重置令牌与保存到数我已经使用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默认实现使用的Hasher可以使用
$hasher = Password::broker()->getRepository()->getHasher();
然后,您可以哈希您的令牌,将它们添加到您的数据库,如下所示:
$hasher->make($token);
您可以使用以下代码检查存储在数据库中的值的令牌:
$hasher->check($token, $databaseToken);
但是你为什么要自己实现Laravel团队已经做过的事情呢?您最好使用Laravel默认身份验证,除非您这样做是为了好玩。