Sep 13, 2020
0
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 ?
Please or to participate in this conversation.