如何解决检查是否重置密码令牌有效laravel
我正在尝试检查passwrod_reset表中是否存在此令牌和此电子邮件,但是问题是我的令牌已解密,而表中的令牌已加密,所以我如何检查令牌是否在表中?
public function checkData(Request $request){
return DB::table('password_resets')->where(['token' => $request->token,'email'=> $request->email])->exists();
}
从请求
dd($request->all());
收到的数据
array:2 [
"email" => "asd@asd.com"
"token" => "6afa1b987d67bfbb9a599a3e30c45942a71b1e518d7406dbcf3b3266d689f732"
]
最后是数据库表password_resets中的令牌
#items: array:1 [
0 => {#351
+"email": "asd@asd.com"
+"token": "$2y$10$QNKyX42nm4W1MHZdeIUmBuNimeftiDnQQUCyZfDDgTwlbiRL//hsO"
+"created_at": "2020-08-25 21:26:42"
}
]
全部...如何使用来自数据库的加密令牌6afa1b987d67bfbb9a599a3e30c45942a71b1e518d7406dbcf3b3266d689f732
检查来自请求$2y$10$QNKyX42nm4W1MHZdeIUmBuNimeftiDnQQUCyZfDDgTwlbiRL//hsO
的解密令牌
解决方法
解决方案在这里。
在我的忘记密码控制器中
public function __construct(HasherContract $hasher)
{
$this->hasher = $hasher;
}
public function checkData(Request $request){
$reset = DB::table('password_resets')->where(['email'=> $request->email])->first();
if(!$reset){
return false;
}
if($this->hasher->check($request->token,$reset->token)){
return true;
}
return false;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。