How to use multiple authentication passport in Laravel?

0

the file auth.php I have the following code

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],

    'apidriver' => [
        'driver' => 'passport',
        'provider' => 'drivers',
    ],
],


'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'drivers' => [
        'driver' => 'eloquent',
        'model' => App\Models\Driver::class,
    ],

],

and this is the authentication code for the driver driver

if (Auth::guard('apidriver')->attempt(['email'=>request('email'),'password'=>request('password')])) {
  $driver=Auth::guard('apidriver')->user();
  $success['token'] =  $driver->createToken('Pizza App')->accessToken;
  return response()->json(['success' => $success], $this->successStatus);
}else{
  return response()->json(['errorrr'=>'Unauthorised'], 401);
  }

and generates the following error when accessing

  

Call to undefined method Illuminate \ Auth \ RequestGuard :: attempt ()

As soon as the user authentication code is working correctly

    
asked by Fercho Jerez 15.06.2017 в 18:23
source

1 answer

0

Modify 'drivers' by 'apidriver' in providers and test. luck ...

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'apidriver' => [
        'driver' => 'eloquent',
        'model' => App\Models\Driver::class,
    ],

],
    
answered by 19.06.2017 в 21:21