这在我的其他Laravel项目中运行良好,但我不知道为什么在我的新项目中不起作用。它们的版本相同,即7.3。已经尝试过config:clear
和cache:clear
,但仍未成功
public function Login(Request $request){
$username = $request->username;
$password = $request->password;
$userQ = User::where('username', $username);
if ($userQ->exists()) {
$user = $userQ->first();
$hashed = $user->Password;
if (Hash::check($password, $hashed)) {
// It doesn't get to this part
$response = array(
"status" => 1,
"message" => "Correct"
);
} else {
$response = array(
"status" => 0,
"message" => "Invalid credentials"
);
}
} else {
$response = array(
"status" => 0,
"message" => "Username does not exist"
);
}
return response()->json($response);
}
$password
是纯文本。$hashed
是我从数据库中得到的密码。这是我的JQuery代码:
var data = {
"username": $("#username").val(),
"password": $("#password").val()
}
console.log(data);
Login(data).then((response) => {
console.log(response);
if (!response.status) {
$("#error-prompt").text(response.message);
} else {
}
}).catch((error) => {
});
检查用户名是否存在$userQ = User::where('username', $username)->first ()
if($userQ) {
if (Hash::check($password, $userQ->Password)) {
// Password was check
}
}
我认为你的问题在于你没有得到用户:
更改此项:
$userQ = User::where('username', $username);
到此:
$userQ = User::where('username', $username)->first();
您不再需要这条线路:
$user = $userQ->first();
然后重试