Laravel Auth , login funktioniert nicht. Es ist immer false zurück?
Ich versuche, mich ein Auth und Login-Applikation mit dem Laravel, sondern es schlägt immer fehl.
Ich sehe immer "Benutzername oder Kennwort falsch." login.blade.php
Meine Dateien sind wie diese ;
route.php
Route::get('login' , function() {
return View::make('auth.login');
});
Route::post('logincontrol', function() {
$userdata = array(
'username' => Input::get('username'),
'password' => Input::get('password')
);
if ( Auth::attempt($userdata) )
{
return Redirect::to('auth.dashboard');
}
else
{
return Redirect::to('login')
->with('login_errors', true);
}
});
Route::get('dashboard', function(){
echo 'welcome';
});
Route::get('insert', function() {
DB::table('users')->insert(array(
'username' => 'admin',
'password' => Hash::make('admin')
));
});
login.blade.php
{{ Form::open( array('url' => 'logincontrol') ) }}
<!-- check for login errors flash var -->
@if (Session::has('login_errors'))
<span class="error">Username or password incorrect.</span>
@endif
<!-- username field -->
<p>{{ Form::label('username', 'Username') }}</p>
<p>{{ Form::text('username') }}</p>
<!-- password field -->
<p>{{ Form::label('password', 'Password') }}</p>
<p>{{ Form::password('password') }}</p>
<!-- submit button -->
<p>{{ Form::submit('Login') }}</p>
{{ Form::close() }}
Erste von allen, die ich ausführen die insert-URL und admin Hinzugefügt, um meine db.
Dann Lauf ich /login URL-Formular angezeigt wird. Ich Benutzername und Passwort eingeben, wie in insert-Route, die ich aber immer false.
nahm ich die codes von http://codehappy.daylerees.com/authentication , ich lese alles auf der Seite aber ich konnte es nicht tun .
Edit : ich habe versucht ;
'password' => Hash::make( Input::get('password') )
Aber es hat nicht funktioniert 🙁
Edit: meine auth.php die Datei ist wie folgt.
return array(
'driver' => 'eloquent',
'username'=>'username',
'model' => 'User',
'table' => 'users',
'reminder' => array(
'email' => 'emails.auth.reminder',
'table' => 'password_reminders',
'expire' => 60,
),
);
ich sehe immer, dass
Können Sie den Benutzer in der Datenbank? Ist der Passwort-Hash? Es muss etwas sehr wie dieser:
$2y$10$DkhQ9P85b6Qdv31kO5/NtOo4C5n0tndpg.b2FqN7zXM3pfqHh6T0y
.ja , ich kann sehen, dass das Passwort in db. seine Hash-wie Sie gesagt haben. Aber ich fand somethind interessant. Ich laufen /insert-URL und fügte hinzu, Benutzername und Passwort zur db wieder. Sie fügte hinzu, einen anderen Wert. Und ich den Befehl ausführen Hash::make('admin') , es gibt immer einen anderen Hash-Wert. ich denke, das seine problem, aber ich weiß nicht, wie es zu lösen 🙁
Das ist richtig, Sie wird nicht das gleiche immer, das sind die Hash-Funktionen, gute Arbeit zu leisten. Sieht aus wie Sheikh Heera hat eine gute Antwort.
InformationsquelleAutor Ashley Lashley | 2013-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Hash, der immer wieder ändert ist normal, da der Hash::check()'ing-Prozess verwendet das Salz eingebettet in den hash zu vergleichen, der nur-text-Wert.
für mehr Informationen dazu schauen Sie hier
http://laravel.io/topic/20/hashing-in-laravel und hier http://en.wikipedia.org/wiki/Salt_(Kryptographie)
Habe ich stolperte über Ihre Frage, denn ich bin mit dem genauen Fehler...
Bin ich empfehlen, Sie zu beobachten, diese tutorial von Jeffrey Weg über die Authentifizierung. Wenn ich etwas finden, werde ich Sie wissen lassen denn ich bin auch zu kämpfen mit diesem problem im moment.
InformationsquelleAutor mXX
Konfiguration für
authentication
gefunden werden konnte, der inapplication/config/auth.php
und in dieser Datei gibt es eine Einstellung für dieusername
wieStandardmäßig ist es
In Ihrem Fall, es ist
username
weil SieUnd folgenden code für den login
So, wenn Sie nicht ändern Sie es in der
application/config/auth.php
Datei dann ändern Sie es zuAlternativ können Sie uns eine
email
Feld in der Tabelle und die Authentifizierung unter Verwendungemail
Feld stattusername
. BTW, dies ist im Zusammenhang mitLaravel-3
nach Ihren link in Frage.Auch, Stellen Sie sicher, dass
password
Feld die Länge ist nicht zu kurz, können Sie ändern die Länge des Feldes für das Kennwort zu100
und lösche dann den alten Datensatz und fügen Sie einen neuen Datensatz, und versuchen Sie dann erneut anmelden.Zuerst dachte ich, dass das problem war , ich hatte es geändert varchar(255), aber das problem ist immer noch contineing .
Wenn Sie Tat alles, nach dem Artikel, den Sie erwähnt haben, dann bitte Lesen Sie den gesamten Prozess erneut und alte Datensätze löschen und neue Datensätze hinzufügen, die vielleicht verschiedene Benutzernamen und das Kennwort ein (mehr als einer) und loggen Sie sich ein.
es ist mein drittes mal tun, den Artikel, ich konnte nicht verstehen, wo bin ich falsch :S
InformationsquelleAutor The Alpha
Manchmal sind es die einfachen Dinge, die Sie erhalten.
Ich verbringe einen großen Teil der heute mit einem ähnlichen Problem und die Lösung in meinem Fall war, dass ich mit artisan generate:scaffold-die hatten den Benutzer erstellt ein Modell mit;
class User extends Eloquent
Habe ich für die Modifikation dieses Modells durch hinzufügen
implements UserInterface, RemindableInterface
und dann die folgenden fehlenden Funktionen:
Alles funktioniert gut für mich. Hoffe, dies hilft Ihnen.
ossi
InformationsquelleAutor Ossi