如何根据md5加密登录yii2?

时间:2018-02-12 12:05:05

标签: yii2 yii2-advanced-app

我有一个包含大量用户的表,其密码存储为md5, 如何根据md5加密更改登录网站?

我希望原谅弱英语!

3 个答案:

答案 0 :(得分:0)

看看这里:http://www.yiiframework.com/doc-2.0/guide-security-authentication.html

在这里,您可以找到有关如何创建用户模型以支持身份验证的指南,实际登录/注销此类用户的方法;根据您的数据模型和控制器流程,获取用户和比较密码的所有负担都取​​决于您。

答案 1 :(得分:0)

我得到的结果如下。

sitecontroller 文件和 actionlogin 更改为:

public function actionLogin()
{   
    if (!Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new LoginForm();
    if (yii::$app->request->post()) 
    {
        $model->username    =   $_POST['username']; 
        $model->password    =   $_POST['password']; 
        if($model->login())
        {
            $this->goBack();
        } 
    } 
    else 
    {
        return $this->renderPartial('login.tpl', [
            'model' => $model,
        ]);
    }
} 

然后 common / models / LoginForm.php 将登录方式更改为:

public function login()
{   
    if ($this->validate()) {
        return Yii::$app->user->login($this->getUser(), 0); // remember me changed to 0
    }
    return false;
}

并在规则方法评论rememberme =====>> // ['rememberMe','boolean'],

说明:我知道这不是正确的方法,但执行项目不是问题!

答案 2 :(得分:0)

我会建议以下解决方案

class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface {

...........    

public function validatePassword($password) {
        return $this->password === md5($password);
    }
.........

}

您只需要修改validatePassword()方法,如上所示。