Level 18
If I'm not mistaken the Auth::check() is something you use for session based authentications.
When using passport/APIs you should use: Auth::guard('api')->check(), as API's are stateless and nothing is stored in session.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello Friends, I want to ask about auth in laravel 8 passport.
I have created APIs for register, login, loginUser & logout.
register & login API works fine, but loginUser & logout APIs are not working fine.
loginUser controller function:
public function loginUser(Request $request)
{
if (Auth::check()) {
$user = User::where('id', Auth::user()->id)->first();
$success['user'] = $user;
return $this->sendResponse($success, $user->name . ' is currently login.');
} else {
return $this->sendError('Unauthorized.', ['error' => 'Unauthorized'], 422);
}
}
When I call loginUser Api after login it returns:
{
"success": false,
"message": "Unauthorized.",
"data": {
"error": "Unauthorized"
}
}
Logout is also not working for me:
if (Auth::check()) {
$user = User::where('id', auth()->user()->id)->first();
$token = $user->user()->token();
$token->revoke();
$success = [];
return $this->sendResponse($success, 'You have been successfully logged out!');
} else {
return $this->sendError('Unauthorized.', ['error' => 'Unauthorized'], 422);
}
Plz, help me. Thanks
Please or to participate in this conversation.