如果有前台会员登陆和后台管理员登陆分离的需求,则需要为前台和后台的登陆定制两套不同的验证机制,主要是通过定义不同的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);
时间: 2024-10-11 07:00:37