2016-07-29 10 views
1

Hallo ich benutze Laravel 5.2 Standard-Authentifizierung, aber ich möchte, dass der Benutzer nur mit aktivem Status angemeldet sein muss.Laravel 5.2 Benutzeranmeldung mit aktivem Status

https://laravel.com/docs/5.2/authentication

in diesem Link sie die Methode, wie die

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) { 
    // The user is active, not suspended, and exists. 
} 

folgenden gegeben, aber ich dies nicht finden, wo es in Laravel 5.2 befindet.

Ich suchte, aber die Lösungen sind für frühere Versionen und nicht für 5.2.

So helfen Sie mir bitte die Benutzer anmelden, die nur aktiv Status hat mich 5.2 so geben Laravel nicht von 5.1 oder früheren oder benutzerdefinierte Lösung gebaut Versionen das Problem

+0

es funktioniert immer noch so –

+0

Das funktioniert mit 5.2, haben Sie es versucht? –

+1

Sie haben es der Dokumentation hinzugefügt, um zu zeigen, dass Sie andere Felder in der Benutzertabelle verifizieren können. Sie haben zum Beispiel das Feld 'active' verwendet, Laravel verfügt nicht über Funktionen zur Kontoaktivierung. – Winter

Antwort

1

Vorausgesetzt, dass Sie den Standard-Auth-Setup verwenden, können Sie die getCredentials Methode auf den AuthController, außer Kraft setzen, die aus dem AuthenticatesUsers Merkmale kommt.

protected function getCredentials(Illuminate\Http\Request $request) 
{ 
    return $request->only($this->loginUsername(), 'password') + ['active' => 1]; 
} 

Diese Methode die Berechtigungsnachweise Array zurückgibt, die in der Auth::attemptlogin Methode der AuthController geben wird. Wie andere Leute erwähnt haben, müssen Sie ein active Feld auf Ihrer users Tabelle haben.

0

Das Beispiel nur zu lösen ist, Ihnen zu zeigen, hinzufügen benutzerdefinierte Felder beim Login.

Sie müssen ein zusätzliches Feld zu Ihrer Benutzertabelle wie isActive hinzufügen.

Wenn Sie dies getan haben, können Sie überprüfen, ob ein Benutzer in Ihrer Anwendung aktiv ist.

if($user->isActive) { 
// do something 
}