P粉0715596092023-08-29 00:50:53
基本上,你想要做的是:
users
表中具有给定用户名的用户。所以,你想要首先查询具有给定用户名的用户。然后,在检索到用户并验证其存在之后,你可以检查提供的密码是否与检索到的模型上的哈希密码匹配。
public function login(Request $request): Response
{
$user = User::where('username', $request->get('username'));
if (!$user || !Hash::check($request->get('password'), $user->password)) {
return back()->with([
'message' => '用户名和/或密码不正确。',
'alert-type' => 'error'
]);
}
$request->session()->put('user', $user);
return redirect('dashboard');
}
然而,在Laravel中有内置的功能可以实现这一点,根据你的需求,这样做可能更简单:
public function login(Request $request): Response { if (!Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')]) { return back()->with([ 'message' => '用户名和/或密码不正确。', 'alert-type' => 'error' ]); } return redirect('dashboard'); }
https://laravel.com/api/8.x/Illuminate/Support/Facades/Auth.html#method_attempt