为了账号安全,请及时绑定邮箱和手机立即绑定

yii2 如何处理管理员登陆

yii2 如何处理管理员登陆

繁华开满天机 2019-04-13 08:45:46
提交的数据$_GET=['r'=>'site/login',];$_POST=['_csrf'=>'WjgxM0tfa3YxQn1rcg4vHioLVlt.EjhOAnFVR3MuXgQ7WkNmBwofIg==','LoginForm'=>['username'=>'admin','password'=>'admin','rememberMe'=>'1',],'login-button'=>'',];yii2处理管理员登陆部分的代码:#/var/www/example.com/public_html/yii/backend/controllers/SiteController.phppublicfunctionactionLogin(){if(!\Yii::$app->user->isGuest){return$this->goHome();}$model=newLoginForm();if($model->load(Yii::$app->request->post())&&$model->login()){return$this->goBack();}else{return$this->render('login',['model'=>$model,]);}}但是我并没有user表,这里是backend,管理员登陆部分,对应的表是admin,结构。mysql>descadmin;+-------+------------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------+------------------+------+-----+---------+-------+|id|int(10)unsigned|NO||NULL|||name|char(30)|NO|||||pwd|char(32)|NO|||||email|char(30)|NO||||+-------+------------------+------+-----+---------+-------+4rowsinset(0.03sec)mysql>select*fromadmin;+----+---------+----------------------------------+-------+|id|name|pwd|email|+----+---------+----------------------------------+-------+|1|admin|b9840270f7f4ed699ccc93cc09914d21||+----+---------+----------------------------------+-------+1rowinset(0.00sec)yii2他默认的都是user表,可我并没有user表。我现在提交了用户名和密码,该如何修改actionLogin里面的代码才最合适。
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

试了一下2.0,把models/User.php修改成下边这样.
namespaceapp\models;
//继承关系修改为如下
classUserextends\yii\db\ActiveRecordimplements\yii\web\IdentityInterface
{
public$id;
//username字段修改为name
public$name;
//password字段修改为pwd
public$pwd;
public$authKey;
public$accessToken;
publicstaticfunctiontableName()
{
//数据库表名修改user为admin
return'{{admin}}';
}
publicstaticfunctionfindIdentity($id)
{
returnstatic::findOne($id);
}
publicstaticfunctionfindIdentityByAccessToken($token)
{
returnstatic::findOne(['access_token'=>$token]);
}
publicstaticfunctionfindByUsername($username)
{
//username修改为name
returnstatic::findOne(['name'=>$username]);
}
publicfunctiongetId()
{
return$this->id;
}
publicfunctiongetAuthKey()
{
return$this->authKey;
}
publicfunctionvalidateAuthKey($authKey)
{
return$this->authKey===$authKey;
}
publicfunctionvalidatePassword($password)
{
//password修改为pwd
return$this->pwd===$password;
}
}
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信