php - yii2 如何处理管理员登陆
PHPz
PHPz 2017-04-10 14:56:18
0
4
457

提交的数据

$_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.php public function actionLogin() { if (!\Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } else { return $this->render('login', [ 'model' => $model, ]); } }

但是我并没有user表,这里是backend,管理员登陆部分,对应的表是admin,结构。


mysql> desc admin; +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | NO | | NULL | | | name | char(30) | NO | | | | | pwd | char(32) | NO | | | | | email | char(30) | NO | | | | +-------+------------------+------+-----+---------+-------+ 4 rows in set (0.03 sec) mysql> select * from admin; +----+---------+----------------------------------+-------+ | id | name | pwd | email | +----+---------+----------------------------------+-------+ | 1 | admin | b9840270f7f4ed699ccc93cc09914d21 | | +----+---------+----------------------------------+-------+ 1 row in set (0.00 sec)

yii2 他默认的都是user表,可我并没有user表。
我现在提交了用户名和密码,该如何修改actionLogin里面的代码才最合适。

PHPz
PHPz

学习是最好的投资!

全部回复 (4)
左手右手慢动作

1 参考高级模板里里的common\models\User 修改 Admin, 并改成目前的密码加密方式.
2 修改 配置文件里的

'user' => [ // 'identityClass' => 'common\models\User', 'identityClass' => 'common\models\Admin', 'enableAutoLogin' => true, ],
  1. 修改LoginForm getUser() 从您的用户表获取用户.
    PHPzhong

    试了一下2.0, 把models/User.php修改成下边这样.

     $token]); } public static function findByUsername($username) { //username修改为name return static::findOne(['name' => $username]); } public function getId() { return $this->id; } public function getAuthKey() { return $this->authKey; } public function validateAuthKey($authKey) { return $this->authKey === $authKey; } public function validatePassword($password) { //password修改为pwd return $this->pwd === $password; } }
      Peter_Zhu

      你应该增加一个UserIdentity 并且修改LoginForm 两者结合才可以不用父类的User表

        巴扎黑

        很简单,添加权限管理,快捷方便。你可以去看官方文档中的rbac的角色管理一章。建议:后台管理员和普通用户放在一块。这样才有高级程序员的范!

          最新下载
          更多>
          网站特效
          网站源码
          网站素材
          前端模板
          关于我们 免责声明 Sitemap
          PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!