Yii 2重定向

时间:2015-11-12 09:33:12

标签: php session cookies yii yii2

我创建了我的Yii 2应用程序。在我的数据库中,有一个表用户具​​有以下字段:firstNamelastNameusernamepassword,' authKey'。

使用Gii工具我为用户表创建了一个模型。为了实现登录功能,我从IdentityInterface扩展了这个类,并实现了所有方法。这是方法列表:

public static function findIdentityByAccessToken($token, $type = null)
{
    throw new NotSupportedException();
}

  public static function findIdentity($id)
{
    Admin::findOne($id)
}

public function getId()
{
    return this->id;
}

 public function getAuthKey()
{
    return $this->authKey
}


 public function validateAuthKey($authKey)
{
    return $this->authKey = $authKey;
}

public static function findByUsername($username)
{
    return static::find(array('username'=>$username));
}

public function validatePassword($password) {
    return $this->password == $password;//Just for demonstration purposes
}

我更改了配置文件(用户组件等于此):

'user' => [
    'identityClass' => 'app\models\Admin',
    'enableAutoLogin' => true,
],

LoginController后面的行

if($model->load(Yii::$app->request->post()) && $model->login()) {

我打印

var_dump(Yii::$app->user->identity);exit;

用户身份属性,并且正常设置了值。只要我将用户重定向到任何其他页面

 var_dump(Yii::$app->user->identity); exit;

等于null

有人能解释我发生了什么吗?

注意:以下帖子没有帮助:

yii2 losing user identity after login redirect

Yii2 user identity loss after page redirection

2 个答案:

答案 0 :(得分:0)

发布$ model-> login()的内容。

然后我会在登录后检查会话cookie是否正确设置。

答案 1 :(得分:0)

问题出在findIdentity方法中,但没有返回任何结果。 它应该是

public static function findIdentity($id)
{
    return Admin::findOne($id)
}