Laravel 4 Auth :: versuch () gibt immer false zurück

8

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?

    
John 14.06.2013, 15:15
quelle

5 Antworten

6

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:

%Vor%

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

    
CreativityKills 17.06.2013 06:37
quelle
3

Hash das Passwort vor dem Versuch nicht:

%Vor%     
Antonio Carlos Ribeiro 14.06.2013 15:17
quelle
0

Sie sollten UserInterface class, die von laravel bereitgestellt wird, in Ihrer Modellklasse implementieren:

%Vor%

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

folgen     
revo 24.01.2014 14:28
quelle
0

Überprüfen Sie Ihr Passwort Länge. Es muss 60 oder höher in der Datenbank sein.

    
Khalil Laleh 14.11.2014 14:55
quelle
0

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.

    
Laravel User 26.05.2016 08:59
quelle

Tags und Links