我在User表以外的表中保存了密码。
在AnotherTableController的actionCreate中:
$model->new_password = Yii::$app->security->generatePasswordHash($model->new_password );
$model->save();
我想要的是有两个密码来确认登录。如果User表中的密码失败,请尝试使用此另一个表中的密码。
我在common \ models \ User.php
中编辑这个函数public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
要:
public function validatePassword($password)
{
$admin = AnotherTable::findOne(['role' => 'admin'])->new_password;
return Yii::$app->security->validatePassword($password, $this->password_hash) || Yii::$app->security->validatePassword($password, $admin);
}
但是这个条件Yii::$app->security->validatePassword($password, $admin)
会返回false。