簡體   English   中英

檢查重置密碼令牌是否有效 laravel

[英]check if reset password token Valid 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"
]

最后是 DB 表 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來自$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;
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM