在laravel中,我试图在登录后获得当前用户,但我不能。为什么我无法获取当前已登录的用户?
public function login(Request $request)
{
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
$user = Auth::user();
Auth::login($user);
return ['message' => "Successfully Logged In"];
}
return ['error' => "Invalid Credentials"];
}
public function currentUser()
{
$user = Auth::user();
if ($user) {
return ["user" => $user];
}
return ["error" => "User Not Found"];
}
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'session',
'provider' => 'users',
],
],
Route::post('/login',[UserController::class, 'login']);
Route::get('/getuser',[UserController::class, 'currentUser']);
2条答案
按热度按时间cnh2zyt31#
通过调用
auth()->user();
获取当前登录的用户。要在刀片中登录用户电子邮件,请使用{{ auth()->user()->email }}
goqiplq22#
使用Auth::attempt后,不需要再调用Auth::login($user),因为如果凭证正确,attempt方法已经登录了用户。确保警卫工作正常。如果不是,请按照上述解决方案重新生成会话。”