2017-06-15 1 views
1

Le fichier auth.php a le code suivantComment utiliser plusieurs mots de passe d'authentification dans Laravel?

'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, 
     ], 

    ], 

Et ceci est le code d'authentification pour le pilote

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); 

    } 

et génère l'erreur suivante lors de l'accès

Appel à la méthode non définie Illuminate \ Auth \ RequestGuard :: attempt()

Lorsque le code d'authentification de l'utilisateur fonctionne correctement

Répondre

0

Vous n'êtes pas vos paramètres de analysez demande correctement,
remplacer cette ligne

if(Auth::guard('apidriver')>attempt(['email'=>request('email'),'password'=>request('password')])) 

avec ceci:

if (Auth::guard('apidriver')->attempt(['email'=>request('email'),'password'=>request('password')])) 

Vérifiez également que vous avez appelé Illuminate\Http\Request; en haut de votre classe.