Ich verschiebe eine App von CakePHP 2 nach CakePHP 3. Es gibt einen neuen Hashalgorithmus für Cake3. Ich möchte, dass die vorhandenen Benutzer sich mit ihren alten Passwörtern in der App anmelden können und diese Passwörter dann auf den neuen Algorithmus aktualisiert werden.Migrieren von CakePHP2-Authentifizierung zu CakePHP 3
Leider kann ich nicht den richtigen Hash abrufen, der mit dem in der Datenbank übereinstimmt.
$person = $this->Auth->identify();
if(!$person){ # maybe they have old sha1 password?
$oldhash = Security::hash($this->request->data['password'],
'sha1', "oldsalt");
$person = $this->People->find()->where(['password' => $oldhash])->where(['email' =>$this->request->data['email'] ])->first();
if($person){
$person->password = Security::hash($this->request->data['password']);
$this->People->save($person);
}
}
Der Benutzer nicht gefunden wird, und wenn ich die oldhash $ debug aus erhalte ich eine andere Zeichenfolge als das, was für den Benutzer im Passwort-Feld gespeichert wird.
Was mache ich falsch?
werfen Sie einen Blick auf [diese] (http://book.cakephp.org/3.0/en/controllers/components/authentication.html#changing-hashing-algorithmen) – Sevvlor