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

gzai's avatar
Level 3

Laravel 7 create custom Auth guard API for login

Hi,

I have custom Auth guard API but when I want to login from API, Illuminate\Auth\RequestGuard::login does not exist

auth.php

'guards' => [
        'api' => [
            'driver' => 'cognito',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

AuthServiceProvider.php

class AuthServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->registerPolicies();

        Auth::viaRequest('cognito', function ($request) {
            $token = $request->bearerToken();

            if ($token) {
            	$client = new CognitoClient;
            	
                return $client->verifyToken($token);
            }
            
            return null;
        });
    }
}

ApiController.php

    public function login(Request $request)
    {
    	...
    	if (! $result = $this->client->login($request->username, $request->password) ) 
    	{
    		$errors = Session::get('errors')->getMessageBag();
    		return response()->json($errors, 422);
    	}

        if (! $user = User::firstWhere('cognito_id', $this->client->getUserID($result['AccessToken'])) ) 
    	{
    		return response()->json([ 'login' => ['Unauthorized'] ], 401);
    	}

    	if ( isset($result['AccessToken']) ) {

		$remember = (isset($request->remember)&&$request->remember) ? true : false;

		auth('api')->login($user, $remember); // error
			
		return $result;

	    } else {

	    	return response()->json([ 'login' => ['Unauthorized'] ], 401);

	    }
    }

How to create custom login for custom Auth guard API ?

0 likes
0 replies

Please or to participate in this conversation.