Ich muss ein Passwort von meinem "Reset-Passwort" -Code Hash. Der offensichtliche Weg, es zu tun ist veraltet:Erstellen Sie einen Passwort-Hash von Modell
class ResetPasswordsController {
public function reset() {
$this->ResetPassword->changePassword('correct horse battery staple');
}
}
class ResetPassword {
public function changePassword ($password) {
$hash = AuthComponent::password($password);
}
}
class AuthComponent extends Component {
public static function password($password) {
return Security::hash($password, null, true);
}
}
... und es nicht sowieso arbeiten, weil ich ein benutzerdefiniertes Kennwort Hasher bin mit, von denen AuthComponent::password()
ist offensichtlich nicht bewusst.
Kommentare sagt:
3.0.0 Seit 2.4 @deprecated. Verwenden Sie Security :: hash() direkt oder ein Passwort hasher Objekt.
... aber ich kann nicht die Syntax herauszufinden, meine Hasher zu nennen:
class CustomPasswordHasher extends AbstractPasswordHasher {
}
... esp. wenn ich App-Einstellungen berücksichtigen wollen:
class AppController extends Controller {
public $components = array(
'Auth' => array(
'authenticate' => array(
'Custom' => array(
'passwordHasher' => array(
'className' => 'Foo',
'cost' => 10,
),
'userModel' => 'MyUserModel',
'fields' => array(
'username' => 'my_username_column',
'password' => 'my_auth_token_column'
),
)
),
),
);
}
Gibt es eine Instanz der Hasher irgendwo verhakt entweder Controller oder Modell? Irgendeine Idee?
Dies sollte auch in CakePHP/2 funktionieren, aber es codiert sowohl die Hasher-Klasse als auch ihre Konfiguration. Es ist in Ordnung als ein schneller Hack, aber es ist nicht besonders robust. –