2017-10-26 6 views
-1

Ich versuche festzustellen, ob der Benutzer sich anmelden darf. Zusätzlich zur E-Mail mit dem korrekten Passwort möchte ich überprüfen, ob der Benutzer aktiv ist oder nicht.Ändern Sie das Laravel-Login-System in Laravel 5.5

Es gibt eine aktive Spalte in meiner Datenbank mit den Werten "n" und "y". Die Anmeldung sollte fehlschlagen, wenn aktiv == "n".

Jetzt versuche ich dies zu dem Login Controller hinzuzufügen, aber wo immer ich versuche, diese If/Else-Bedingung zu setzen, wird es einfach ignoriert.

In der Laravel Doc. Ich fand dies:

angeben Zusätzliche Bedingungen:

Wenn Sie möchten, können Sie auch zusätzliche Bedingungen an die Authentifizierungsabfrage zusätzlich in dem den E-Mail und Passwort des Benutzers. Zum Beispiel kann überprüfen wir, dass Benutzer als „aktiv“ markiert ist:

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

Aber nicht für mich workd .. Das ist, warum will ich fragen, wo muss ich diesen Code setzen (ich habe versucht in der authenticatesUsers.php @login-Funktion) und wenn ich den Code in einer bestimmten Weise ändern müssen? Laravel 5.5 behandelt das Login-System ein wenig anders als 5.4 (das ist, was ich denke zumindest)

Vielen Dank für jede Hilfe!

Antwort

0

Ihre beste Weg, dies zu tun, ist ein Verfahren login zu Ihrem LoginController

public function login(Request $request) 
{ 
    if (Auth::attempt(['email' => $request->email, 'password' => $request->password, 'active' => 'y'])) { 
     return redirect()->intended('dashboard'); 
    } else{ 
     return redirect('/'); 
    } 
} 

hinzufügen Speichern use Illuminate\Support\Facades\Auth; und use Illuminate\Http\Request; an die Spitze des Controllers hinzuzufügen.

Getestet mit 0 und 1 und mit n und y und es funktionierte wie

erwartet