2012-05-19 3 views
2

저는 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 항상 진실하고 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

Oh sh1t. 테스트하는 동안 모델에서 로그인 기능에 주석을 달았습니다. 고맙습니다. 이제는 완벽하게 작동합니다. – ajaybc

+0

위대한 답변으로 그것을 추가했습니다. –

답변

관련 문제