若是有前臺會員登錄和後臺管理員登錄分離的需求,則須要爲前臺和後臺的登錄定製兩套不一樣的驗證機制,主要是經過定義不一樣的Session來實現。要解決這個問題就要將先後臺使用不一樣的Cwebuser實例登陸。這樣就已經作到了先後臺登陸分離開了,可是此時你退出的話你就會發現先後臺一塊兒退出了。因而我找到了logout()這個方法,發現他有一個參數$destroySession=true,原來如此,若是你只是logout()的話那就會將session所有註銷,加一個false參數的話就只會註銷當前登陸實例的session了php
Yii::app()->user->logout(false);
main.phpweb
前臺user(Cwebuser)的配置: UserIdentitycookie
'user'=>array( 'class'=>'WebUser',//這個WebUser是繼承CwebUser,稍後給出它的代碼 'stateKeyPrefix'=>'member',//這個是設置前臺session的前綴 'allowAutoLogin'=>true,//這裏設置容許cookie保存登陸信息,一邊下次自動登陸 ),
後臺user(Cwebuser)的配置: AdminIdentitysession
'admin' => array( 'class' => 'AdminWebUser', //後臺登陸類實例 'stateKeyPrefix' => 'admin', //後臺session前綴 "guestName" => "遊客" ),
Yii::app()->user//前臺訪問用戶信息方法app
Yii::app()->admin//後臺訪問用戶信息方法ide
Yii::app()->admin->login($this->_identity,$duration);