如何在Laravel中从给定请求验证用户密码?如何根据存储在数据库中的密码哈希检查密码?
首先,您需要找到基于电子邮件地址或用户名登录的用户,或者您要识别它们,例如:
$user = User::where('email', '=', '[email protected]')->first();
然后,您需要检查哈希密码,如下所示:
Hash::check('INPUT PASSWORD', $user->password);
这将根据密码是否匹配返回true或false。
Laravel登录验证:
public function login(Request $request)
{
$email = $request->input('email');
$password = $request->input('password');
$user = User::where('email', '=', $email)->first();
if (!$user) {
return response()->json(['success'=>false, 'message' => 'Login Fail, please check email id']);
}
if (!Hash::check($password, $user->password)) {
return response()->json(['success'=>false, 'message' => 'Login Fail, pls check password']);
}
return response()->json(['success'=>true,'message'=>'success', 'data' => $user])
}
$email = Input::get('email');
$user = User::where('email', '=', $email)->first();
if (!$user) {
return response()->json(['success'=>false, 'message' => 'Not Login successfull']);
}
if (!Hash::check(Input::get('password'), $user->password)) {
return response()->json(['success'=>false, 'message' => 'Not Login successfull']);
}
return response()->json(['success'=>true,'message'=>'success', 'data' => $user]);
您可以创建以下方法来查找用户身份验证,如laravel网站上所述进行身份验证:
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
// Authentication passed...
// use the below code to redirect the user to dashboard.
// return redirect()->intended('dashboard');
}
}
请查看以下链接,了解有关laravel网站上的身份验证的更多详细信息:https://laravel.com/docs/5.6/authentication#authenticating-users
第1步:首先从DB获取用户数据
$user = User::where('email', '=', $request->input('email'))->first();
第2步:获取用户密码
$user->password
第3步:将其验证为
if(Hash::check($password, $user->password)) {
return response()->json(['status'=>'true','message'=>'Email is correct']);
} else {
return response()->json(['status'=>'false', 'message'=>'password is wrong']);
}
呜呜!!!!!你做了:)