Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

msaad's avatar
Level 1

Laravel 8 Passport API Authentication

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

0 likes
1 reply
BenSeDev's avatar

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.

Please or to participate in this conversation.