2014-09-18 1 views
1

J'utilise yii2 pour développer un site web.
Avant l'utilisateur, sauf db, j'encripted mot de passe comme ceci:Yii2 Exception dans ValidatePassword()

$this->password = Yii::$app->security->generatePasswordHash($this->password); 

Et quand j'utilise ce code:

Yii::$app->security->validatePassword("some string", $this->password); 

je erreur:

Invalid Parameter – yii\base\InvalidParamException Hash is invalid.

Quel est le problème?

+0

https://github.com/yiisoft/yii2/blob/master/docs/guide/security-passwords.md lhs $ hash – Kshitiz

+0

Thx, j'ai vu ça! – Buboon

+0

quelle est la valeur de $ this-> mot de passe lorsque vous générez un mot de passe? Vérifiez également le modèle de modèle deux LoginForm et utilisateur en commun/modèles comment yii2 utilise ceci pour se connecter – Kshitiz

Répondre

3

J'ai rencontré le même problème. Je me suis rendu compte que la capacité de caractère de mon champ de mot de passe était trop courte pour le hachage, donc je l'ai augmenté de varchar (25) à varchar (255).

0

faire sureyou ont un nom de colonne exactement comme password_hash dans le tableau d'utilisateur et changer votre code de

:: Yii app- $> Sécurité-> ValidatePassword ("une chaîne de caractères", $ this-> mot de passe);

à:

:: Yii app- $> Sécurité-> ValidatePassword ("une chaîne de caractères", $ this-> password_hash);

+0

Basse qualité en tant que commentaire. – Billa