【问题标题】:Laravel's Hash::check() and Auth::attempt() always returning falseLaravel 的 Hash::check() 和 Auth::attempt() 总是返回 false
【发布时间】:2020-02-14 15:52:51
【问题描述】:

密码在注册时正在被哈希。

$auth = Hash::check($request->get('password'), $user->password);
dd($auth);

我仔细检查了电子邮件输入、密码输入和哈希值,它们输出正确,但是 Hash::check() 和 Auth:attempt() dd 输出错误

$credentials = $request->only('email', 'password');
dd(Auth::attempt($credentials));

我正在使用 Insomnia 在本地环境中使用 Homestead 进行测试。 Laravel 6 和 PHP 7.3

我在 api 路由文件中的路由:

Route::post('/login','UserController@login');

路由正常,我已经测试了输出请求数据,他们是对的。

谢谢。

【问题讨论】:

  • 无法使用该代码重现,添加您怀疑与该问题相关的路线或任何其他代码
  • @Saly3301 添加了我的登录路径。
  • 还有UserController

标签: php laravel


【解决方案1】:

我的用户模型类中有一个方法对密码进行哈希处理:

public function setPasswordAttribute($value){
    $this->attributes['password'] = Hash::make($value);
}

当我在 Laravel 的 UI 或种子中注册新用户时,我再次对其进行哈希处理。 删除了手动哈希,现在一切正常。

【讨论】:

  • 请务必接受您自己的答案,以便社区的其他人知道您的问题已解决:)
  • 只要允许我就可以,还有 2 天。谢谢!
猜你喜欢
  • 2014-02-25
  • 1970-01-01
  • 2015-03-03
  • 2016-09-12
  • 2017-05-24
  • 2013-06-11
  • 2015-12-10
  • 2015-12-14
相关资源
最近更新 更多