首页 文章

Laravel 5:登录密码与保存的密码不匹配

提问于
浏览
1

当我注册一个用户,使用内置控制器Auth \ RegisterController.php的Laravels时,一切都很好,我立即登录 . 问题是当我注销并尝试通过Auth \ LoginController.php登录时,它显示密码是不正确的 . 代码如下所示:

  • RegisterController.php
$user = $this->create([
    'name' => $request['name'],
    'email' => $request['email'],
    'password' => Hash::make($request['password']),
]);
  • LoginController.php
if(!Auth::attempt(request(['email', 'password']))) {
    return back()->withErrors([
        'message' => 'Wrong Emial or Password!'
    ]);
}

我检查了数据库,一切似乎都没问题 .

这个问题也很奇怪,当我用 php artisan tinker 散列密码(使用 Hash::make('password') )然后在同一个用户的数据库中替换它时,一切正常......

1 回答

  • 5

    您不应该向create()函数发送散列密码,该函数负责处理 . 您无法登录的原因是您将密码两次散列 .

    $user = $this->create([
        'name' => $request['name'],
        'email' => $request['email'],
        'password' => $request['password'],
    ]);
    

相关问题