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
總是返回true和Yii::app()->user->id
回報什麼。
這就是爲什麼我嘗試使用Yii::app()->session['loggedin']
來進行身份驗證。但即使這樣也行不通。當我訪問會話數組像這樣Yii::app()->session
我得到錯誤Property "CWebUser.session" is not defined.
。
這讓人非常沮喪。我是Yii的新手。請幫忙。
你是否[登錄](http://www.yiiframework.com/doc/api/1.1/CWebUser#login-detail)該用戶? –
哦sh1t。測試時,我已經從模型中註釋了登錄功能。謝謝。它現在完美地工作。 – ajaybc
偉大的我已經添加它作爲答案。 –