1
我有管理模塊和不同的CWebUser(adminuser)該模塊。它適用於登錄。所以我可以在主應用程序和模塊中由不同的用戶登錄。但是,當我打電話註銷方法模塊yii。無法從模塊註銷
Yii::app()->getModule('admin')->adminuser->logout();
它記錄我從模塊和主要的應用程序也是如此。
我該如何解決它?
預先感謝。
我有管理模塊和不同的CWebUser(adminuser)該模塊。它適用於登錄。所以我可以在主應用程序和模塊中由不同的用戶登錄。但是,當我打電話註銷方法模塊yii。無法從模塊註銷
Yii::app()->getModule('admin')->adminuser->logout();
它記錄我從模塊和主要的應用程序也是如此。
我該如何解決它?
預先感謝。
我認爲關鍵是stateKeyPrefix
它可以用來告訴不同的模塊使用不同的會話密鑰。 我會把main
配置文件user
一節。
'user' => [
'allowAutoLogin' => true,
**'stateKeyPrefix' => 'YOUR-DEFAULT_',**
'loginUrl' => array('/login'),
'class' => 'application.wsi.auth.WSIWebUser',
'authTimeout' => 3600 * 24 // 1 hour
],
我有管理模塊,我會把我的AdminModule.php
給你。
class AdminModule extends \CWebModule
{
public $defaultController = 'index';
public function init()
{
$this->setImport(array(
'admin.components.*',
));
$this->layout = 'main';
\Yii::app()->setComponents(array(
'authManager' => array(
'class' => 'CPhpAuthManager',
'authFile' => \Yii::getPathOfAlias('admin.data.auth') .'php',
'showErrors' => true,
),
'user' => array(
'stateKeyPrefix' => 'admin_',
'loginUrl' => \Yii::app()->createUrl('/admin/index/login'),
'class' => 'AdminWebUser',
'authTimeout' => 3600 * 24 // 1 day
),
), false);
}
}
我components
文件夾中admin
模塊AdminWebUser
類它。
class AdminWebUser extends \CWebUser {
public function getId() {
return Yii::app()->user->getState ('id');
}
public function getName() {
return Yii::app()->user->getState ('name');
}
public function getRole() {
return Yii::app()->user->getState ('role');
}
public function getEmail() {
return Yii::app()->user->getState ('email');
}
}
登錄和註銷控制器代碼的其餘部分是相同的。 希望它有幫助。如果沒有,請讓我知道。
默認註銷將從用戶中刪除整個會話(請參閱http://www.yiiframework.com/doc/api/1.1/CWebUser#logout-detail)。 –
謝謝。這有助於 Yii :: app() - > getModule('admin') - > adminuser-> logout(false); –