Laravel Hash::check() immer false zurück
Ich habe-profile-Format für den Benutzer Bearbeiten können eigene profile. in dieser form habe ich aktuelle Passwort. das muss sein match von seved in die Datenbank ein.
Form:
{{ Form::password('currPassword', array('id'=>'currPassword')) }}
ich will diese Funktion im Controller zu überprüfen, diese mit der Datenbank.
$data = User::find($id);
if( ! Hash::check( $data->password , Input::get('currPassword') ) )
{
return Redirect::to('/admin/profile')
->with('message', 'Current Password Error !')
->withInput();
}
Hash - 123456
Passwort in die Datenbank ist ok und nachdem man 123456
im currPassword
dass muss zurück TRUE
aber zurück FALSE
immer.
- Siehe this für weitere details.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit dem falschen argument, um. Es ist
Hash::check($input, $hash)
, nicht die andere Weise herum.Kurz-basteln Beispiel:
Beispiel :
Ich hatte das gleiche Problem und löste es so:
Ich festgestellt, dass ich mit dem Hash::stellen Sie die Funktion in meiner Klasse RegistrationService und mehr wichtig, dass ich hatte bereits verwendet die setPasswordAttribute Funktion in meinem - User-Modell die waren schnell vergessen:
Also das Passwort war doppelt gehasht und natürlich jede Hash::check call war falsch, und es wird false zurückgegeben.
Obwohl die oben genannten Antworten sind gültig für die Frage zur Verfügung gestellt, ich bin das hinzufügen von mehr Erklärung geben details Einblicke
Verifiziert Passwort Gegen Den Hash -
Check-Methode können Sie überprüfen, dass ein nur-text-string entspricht einem bestimmten hash. Allerdings, wenn Sie mit der LoginController enthalten Laravel, werden Sie wahrscheinlich nicht brauchen, um verwenden Sie diese direkt, als dieser controller ruft diese Methode:
check () - Methode wird deklariert in HasherInterface
Dieser Methode ist die überprüfung der gegebenen Ebene Wert mit einem hash.
Überprüfen Sie die angegebene Ebene Wert mit einem hash.
Parameter
string $value
string $hashedValue
array $options
Rückgabewert
bool
Für dein Beispiel :