Есть сайт на Yii. На нем предполагается 2 источника авторизаци
- На самом сайте авторизация через социалки посредством модуля EAuth (
habrahabr.ru/post/129804/)
- Есть панель управления для "поставщиков". Сделана в виде модуля. Там планируется обычная авторизация из базы локальных пользователей. Прикрутил
www.yiiframework.com/extension/yii-user
В порсторах нашел про setStateKeyPrefix но по факту не помогает.
в модуле поставщиков
class CpModule extends CWebModule
{
public function init()
{
$this->setComponents(array(
'errorHandler' => array(
'errorAction' => 'site/error'),
'user' => array(
'class' => 'CWebUser',
'allowAutoLogin'=>true,
'stateKeyPrefix' => '_cp',
'loginUrl' => Yii::app()->createUrl('user/login'),
)
));
// this method is called when the module is being created
// you may place code here to customize the module or the application
// import the module-level models and components
$this->setImport(array(
'cp.models.*',
'cp.components.*',
'application.modules.user.models.*',
'application.modules.user.components.*',
));
}
в коде EAuth
protected function getStateKeyPrefix() {
return '__eauth_' . $this->getServiceName() . '__';
}
protected function hasState($key) {
$session = Yii::app()->session;
$key = $this->getStateKeyPrefix() . $key;
return isset($session[$key]);
}
Авторизация проходит в обоих модулях, и если ты авторизовался на сайте то и автоматом в модуле, соответственно если в модуле то и сайт воспрринимает как удачно авторизовавшегося.
Как сделать так чтоб авторизация в модуле была только для модуля. На сайте - только для сайта