我正在尝试检查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
的解密令牌
答案 0 :(得分:0)
解决方案在这里。
在我的忘记密码控制器中
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;
}