我有一个包含大量用户的表,其密码存储为md5, 如何根据md5加密更改登录网站?
我希望原谅弱英语!
答案 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()方法,如上所示。