yii2 如何处理管理员登陆
提交的数据
$_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里面的代码才最合适。
砧板什么牌子好
10 years, 9 months ago
Answers
试了一下2.0, 把
models/User.php
修改成下边这样.
<?php
namespace app\models;
//继承关系修改为如下
class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface
{
public $id;
//username字段修改为name
public $name;
//password字段修改为pwd
public $pwd;
public $authKey;
public $accessToken;
public static function tableName()
{
//数据库表名修改user为admin
return '{{admin}}';
}
public static function findIdentity($id)
{
return static::findOne($id);
}
public static function findIdentityByAccessToken($token)
{
return static::findOne(['access_token' => $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;
}
}
dfsdasd
answered 10 years, 9 months ago