2016-04-09 11 views
5

Qualcuno ha riscontrato questo problema

dd($this->user->check()); return false 

ma

Auth::guard('user')->attempt(App\User::find(1)) 

restituirà l'errore

Chiama per metodo non definito Illuminate \ Auth \ TokenGuard :: tentativo()

Si prega di aiutare a risolvere questo problema.

+0

dd (Auth :: guardia ('utente') -> verifica()) –

risposta

7

ho risolto questo problema

Nella configurazione config/auth.php :

'user' => [ 
    'driver' => 'token', 
    'provider' => 'userProvider', 
], 

abbiamo bisogno di cambiare a:

'user' => [ 
    'driver' => 'session', 
    'provider' => 'userProvider', 
], 

Poiché i dati Auth::guard è memorizzato nella sessione di

E ulteriori lavori sullo schema ben noto-

Auth::login() = Auth::guard('user')->login() 
Auth::attempt() = Auth::guard('user')->attempt() 
Auth::user() = Auth::guard('user')->user() 
... 
1

Alla funzione attempt si passa una serie di creditianals, non un oggetto utente.

Ad esempio:

Auth::guard('user')->attempt([ 
    'email' => '[email protected]', 
    'password' => '1234' 
]); 

E se si utilizza laravel e la necessità di autenticare l'utente, è possibile chiamare simile:

auth()->attempt([ 
    'email' => '[email protected]', 
    'password' => '1234' 
]); 
+0

Lo so. Ma la documentazione dice che posso usare Auth :: guard ('api') -> attempt(), Auth :: guard ('any') -> tentativo (), -> login() ecc per l'autenticazione multipla. –

Problemi correlati