Ich versuche die Auth-Klasse von Laravel, aber jedes Mal, wenn ich versuche, einen Benutzer einzuloggen, gibt die Methode false zurück. Hier ist mein Code:
Routen.php
%Vor%Ansichten / login.blade.php
%Vor%config / auth.php
%Vor%Die Datenbank hat die E-Mail & amp; Passwort-Felder, und das Passwort-Feld ist varchar (60). Immer wenn ich die Login-Daten an / login sende, bekomme ich "Falsch". Ich kann wirklich nicht sehen, was hier falsch ist?
Ihr Code wird abgemeldet, weil Sie die falschen Variablen an Auth::attempt()
übergeben. Diese Methode erfordert ein Array mit Schlüssel Benutzername, Passwort und optional zu erinnern. In diesem Licht sollte der obige Code lauten:
Ich hoffe, das hilft.
Außerdem gebe ich Ihnen Code-Schnipsel, um Ihren Arbeitsfluss zu verbessern. Route zum Speichern eines neuen Benutzers:
%Vor%Fügen Sie dann in Ihrem Benutzermodell die Methode
hinzu %Vor%Auf diese Weise wird das Passwort jedes Mal automatisch gehashed
Sie sollten UserInterface
class, die von laravel bereitgestellt wird, in Ihrer Modellklasse implementieren:
Und denken Sie daran, dass es zwei abstrakte Methoden gibt, die Sie bei Ihrem Modell deklarieren sollten. Sie können dem ursprünglichen User.php
model
Überprüfen Sie Ihr Passwort Länge. Es muss 60 oder höher in der Datenbank sein.
Das wird nicht funktionieren, weil auth :: versuchen, das Passwort mit bcrypt in den Hash-Wert zu konvertieren und nach diesem Hash in der Benutzertabelle sucht, der er entspricht.
Kurz gesagt sollte das Passwort ein Hash sein, der in der Datenbanktabelle für auth :: versuch zu arbeiten gespeichert ist.
Deshalb ist Ihre if () Bedingung fehlgeschlagen.
Sie können bcrypt (Passwort) verwenden, um das Passwort als Hash in der Datenbank zu speichern und dann auth :: versuchen
unten ist von Laravel docs
Die Versuchsmethode akzeptiert ein Array von Schlüssel / Wert-Paaren als erstes Streit. Die Werte im Array werden verwendet, um den Benutzer zu finden Ihre Datenbanktabelle. Im obigen Beispiel wird der Benutzer also sein abgerufen durch den Wert der E-Mail-Spalte. Wenn der Benutzer gefunden wird, Hash - Passwort in der Datenbank gespeichert wird mit dem verglichen werden Hash-Kennwortwert, der über das Array an die Methode übergeben wird. Wenn die zwei Hash-Passwörter entsprechen einer authentifizierten Sitzung, für die gestartet wird der Benutzer.
Die Methode test gibt true zurück, wenn die Authentifizierung erfolgreich war. Andernfalls wird false zurückgegeben.
Tags und Links php authentication laravel