[英]Hash::check in Laravel 5 is not working, always return false?
[英]laravel 7 sanctum Hash::check always returns false
我正在尝试使用 sanctum 构建 laravel auth api 并且我遵循了文档但收到此错误:
{
"message": "The given data was invalid.",
"errors": {
"data": [
"The provided credentials are incorrect."
]
}
}
这是 controller:
public function login(Request $request)
{
$request->validate([
'email' => 'required',
'password' => 'required',
'device_name' => 'required',
]);
$user = User::where('email', $request->email)->first();
if (! $user || ! Hash::check($request->password, $user->password)) {
throw ValidationException::withMessages([
'data' => ['The provided credentials are incorrect.'],
]);
}
$token = $user->createToken($request->device_name)->plainTextToken;
$response = [
'user' => $user,
'token' => $token,
];
return response($response, 201);
return $user->createToken($request->device_name)->plainTextToken;
}
我找到了这个解决方案,但即使密码错误它也会返回“true”:
尝试这种方式,使用attempt
$request->validate([
'email' => 'required|email|string',
'password' => 'required|string',
'device_name' => 'required',
]);
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
$user = $request->user();
$token = $user->createToken($request->device_name)->plainTextToken;
//return....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.