【问题标题】:check if reset password token Valid laravel检查是否重置密码令牌有效的laravel
【发布时间】:2023-04-10 08:56:02
【问题描述】:

我正在尝试检查此令牌和此电子邮件是否存在于 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"
    }
  ]

总而言之...如何使用来自数据库的加密令牌 $2y$10$QNKyX42nm4W1MHZdeIUmBuNimeftiDnQQUCyZfDDgTwlbiRL//hsO 检查来自请求 6afa1b987d67bfbb9a599a3e30c45942a71b1e518d7406dbcf3b3266d689f732 的解密令牌

【问题讨论】:

  • no..我确定有一个函数可以读取 dycrepted 令牌..但我找不到它
  • 不是我..laravel 那样做
  • 我只是在使用没有所有 laravel/ui 的 password_reset 吗?像以前版本的 laravel 一样
  • 你能分享你的 config/hashing.php 文件来检查你的 laravel 哈希令牌吗?
  • 让我告诉我这个解密的令牌在发送电子邮件以重置密码后来自我的角度前端,以便邮件发件人将其解密

标签: php laravel token laravel-7


【解决方案1】:

解决方案在这里..

在我的忘记密码控制器中

    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;
      }

【讨论】:

    猜你喜欢
    • 2020-07-12
    • 2019-05-02
    • 2016-01-03
    • 2020-11-19
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2020-07-04
    相关资源
    最近更新 更多