Yii2登录验证问题

Yii2登录验证问题,yii2,Yii2,我在预先验证Yii2的密码时遇到问题。我得到以下错误 “用户名或密码不正确。” 我知道yii2使用哈希认证。我提供正确的密码,我记得从注册时 数据库中的“我的密码”字段始终为空,其中没有任何内容,但我的密码散列和身份验证密钥中有大量字符 密码字段为空是否正常?或者这是注册过程中的一个错误 这是我的用户模型代码 namespace common\models; use Yii; use yii\base\NotSupportedException; use yii\behaviors\Times

我在预先验证Yii2的密码时遇到问题。我得到以下错误

“用户名或密码不正确。”

我知道yii2使用哈希认证。我提供正确的密码,我记得从注册时

数据库中的“我的密码”字段始终为空,其中没有任何内容,但我的密码散列和身份验证密钥中有大量字符

密码字段为空是否正常?或者这是注册过程中的一个错误

这是我的用户模型代码

namespace common\models;

use Yii;
use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;


class User extends ActiveRecord implements IdentityInterface
{
      public static function tableName()
{
    return '{{%user}}';
}

存储密码时,在保存用户详细信息之前,可以在用户模型中使用以下功能

$this->password = Yii::$app->getSecurity()->generatePasswordHash($this->password);
现在,当用户输入密码时,您可以使用以下代码对其进行验证

if (Yii::$app->getSecurity()->validatePassword($password, $user->password) == true) {
    /* Password is valid */
} else {
    /* Invalid password */
}

关于空白密码,YII2在将空白密码转换为散列时是可接受的,但这是允许用户输入空白密码的不良做法。您必须在模型中添加validaiton规则,以避免输入空白密码。

最好显示您的用户创建代码!为什么有密码字段?应该只需要hashShow更多的代码,这是不够的。