Ich habe eine Laravel 4 App, in der ich einen Benutzer eingerichtet habe. In meiner Login-Route rufe ich Auth::attempt
mit der E-Mail und dem Passwort an, aber es kommt immer als falsch zurück. Ich habe definitiv das richtige Passwort und den richtigen Hash in der Datenbank als Hash::check
gibt True zurück.Laravel 4 Authentifizierung funktioniert nicht
Ich denke, es kann aufgrund der Verwendung von email
als Login-Feld anstelle von username
, aber ich kann keine Einstellung dafür sehen. This question impliziert, Sie könnten eine Option zu config/auth.php
hinzufügen, aber es hat nicht funktioniert. This question sagt, username
als Array-Schlüssel verwenden, aber dann bekomme ich SQL-Fehler, weil es versucht, auf ein Feld Benutzername in der Datenbank auswählen.
Muss ich dem Benutzermodell etwas hinzufügen, um das Feld Benutzername anzugeben? Hier ist meine Login-Route:
Route::post('login', function() {
// data from login form
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
$auth = Hash::check(Input::get('password'), Hash::make('mypass'));
var_dump($auth); // this is TRUE
// login was good
$auth = Auth::attempt($credentials);
var_dump($auth); // this is FALSE
});
Der Array-Schlüssel sollte mit einer Spalte übereinstimmen, mit der Sie Benutzer in der Datenbank authentifizieren. Dies wird in [docs] (http://four.laravel.com/docs/security#authenticating-users) erwähnt. Haben Sie das Standard-Benutzermodell, mit dem L4 ausgeliefert wird, geändert? –