如果有前台会员登陆和后台管理员登陆分离的需求,则需要为前台和后台的登陆定制两套不同的验证机制,主要是通过定义不同的Session来实现。要解决这个问题就要将前后台使用不同的Cwebuser实例登录。这样就已经做到了前后台登录分离开了,但是此时你退出的话你就会发现前后台一起退出了。于是我找到了logout()这个方法,发现他有一个参数$destroySession=true,原来如此,如果你只是logout()的话那就会将session全部注销,加一个false参数的话就只会注销当前登录实例的session了
Yii::app()->user->logout(false);
main.php
前台user(Cwebuser)的配置: UserIdentity
'user'=>array(
'class'=>'WebUser',//这个WebUser是继承CwebUser,稍后给出它的代码
'stateKeyPrefix'=>'member',//这个是设置前台session的前缀
'allowAutoLogin'=>true,//这里设置允许cookie保存登录信息,一边下次自动登录
),
后台user(Cwebuser)的配置: AdminIdentity
'admin' => array(
'class' => 'AdminWebUser', //后台登录类实例
'stateKeyPrefix' => 'admin', //后台session前缀
"guestName" => "游客"
),
Yii::app()->user//前台访问用户信息方法
Yii::app()->admin//后台访问用户信息方法
Yii::app()->admin->login($this->_identity,$duration);