登录成功后,用户未登录YII2前端

时间:2015-12-10 06:21:28

标签: authentication login yii2

如果我运行登录功能,则会打印User

public function actionLogin(){
if ($model->load(Yii::$app->request->post()) && $model->login()) {
    if (Yii::$app->user->isGuest) {
        echo "guest";
    } else {
        echo "User";
    }
    return $this->redirect(['dashboard']);
}

重定向后如果我运行仪表板功能,则会打印guest

public function actionDashboard()
{        
    if (Yii::$app->user->isGuest) {
        echo "guest";
    } else {
        echo "User";
    }
}

我的Login型号:

public function login()
{
    if ($this->validate()) {
        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
    } else {
        return false;
    }
}        

这是getUser函数:

protected function getUser()    
{
    if ($this->_user === null) {
        $this->_user = Customer::findByEmail($this->email);
    }

    return $this->_user;
}

请帮我检查另一个功能,无论用户是否已登录?

1 个答案:

答案 0 :(得分:0)

我成功解决了这个问题。

只需更改后端/ config / main.php或frontend / config / main.php

更改此

'components' => [
        'user' => [
            'identityClass' => 'common\models\Customer', //or Any models you want
            'enableAutoLogin' => true,
        ],
]