Yii用户身份验证和会话不能正常工作

问题描述:

我在Yii中建立了一个网站,我被卡在用户身份验证步骤。无论我做什么,我都无法认证用户或在会话中存储一些价值。Yii用户身份验证和会话不能正常工作

我的UserIdentity成分如下:

class UserIdentity extends CUserIdentity 
{ 
    private $_id; 

    public function authenticate(){ 
     if(($userRecord = Admin::model()->findByAttributes(array('username'=>$this->username)))===null){ 
      return $this->errorCode=self::ERROR_USERNAME_INVALID; 
     } 
     if($userRecord->password!=hash('sha256', $this->password)){ 
      return $this->errorCode=self::ERROR_PASSWORD_INVALID; 
     } 
     $this->_id=$userRecord->id; 
     $this->setState('title', $userRecord->username); 
     Yii::app()->session['clientId'] = $userRecord->clientId; 
     Yii::app()->session['id'] = $userRecord->id; 
     Yii::app()->session['loggedin'] = true; 

     return $this->errorCode=self::ERROR_NONE; 
    } 

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

} 

Yii:app()->user->isGuest总是返回true和Yii::app()->user->id回报什么。

这就是为什么我尝试使用Yii::app()->session['loggedin']来进行身份验证。但即使这样也行不通。当我访问会话数组像这样Yii::app()->session我得到错误Property "CWebUser.session" is not defined.

这让人非常沮丧。我是Yii的新手。请帮忙。

+1

你是否[登录](http://www.yiiframework.com/doc/api/1.1/CWebUser#login-detail)该用户? –

+0

哦sh1t。测试时,我已经从模型中注释了登录功能。谢谢。它现在完美地工作。 – ajaybc

+0

伟大的我已经添加它作为答案。 –

使用CWebUser的login函数。

关注this tutorial