2015-04-24 3 views
0



Я пытаюсь создать продвинутый проект Yii2. Для этого я использовал продвинутый шаблон приложения kartik-v. Он отлично работает, но (как только он упомянул here), если вы войдете в интерфейс, а затем перейдите на бэкэнд, вы также войдете в систему. Поэтому я хотел бы разделить интерфейсные и бэкэнд-логины (разные сеансы). Я попытался настроить файлы cookie, но это не сработало.
В комментариях я нашел это: «Тем не менее, когда либо входной интерфейс, либо бэкэнд подписывается, и мы открываем другое, оно автоматически подписывается, потому что cookie сеанса тот же, PHPSESSID». Таким образом, я изменил имя и savePath сеансов в конфигурации frontend и backend. С этим он должен работать, но это не так.
Я получаю 500 внутренних ошибок сервера каждый раз, когда я иду на свою страницу. И если я попытаюсь войти в систему, он просто не работает, он перенаправляет меня, но не регистрирует меня. Я узнал, что если я не установлю savePath, я не получу ошибку, но все равно ничего не произойдет. И если проверить параметр «запомнить меня», я получаю сообщение об ошибке, но логин работает. Поэтому я не знаю, что делать сейчас. Мои основные конфигурационные файлы:Yii2 Расширенное приложение, различные сеансы для внешнего интерфейса и бэкенда


бэкенд:

'components' => [ 
    'session' => [ 
     'name' => 'backend_sessid', 
     'savePath' => __DIR__ . '/../tmp', 
    ], 
    'user' => [ 
     'identityClass' => 'common\models\User', 
     'enableAutoLogin' => true, 
     'identityCookie' => [ 
      'name' => '_backendUser', 
      'path' => '/projectname/backend/web' 
     ] 
    ], 

интерфейс:

'components' => [ 
    'session' => [ 
     'name' => 'frontend_sessid', 
     'savePath' => __DIR__ . '/../tmp', 
    ], 
    'user' => [ 
     'identityClass' => 'common\models\User', 
     'enableAutoLogin' => true, 
     'identityCookie' => [ 
      'name' => '_frontendUser', 
      'path' => '/projectname' 
     ] 
    ], 

ответ

1

Один подход заключается в использовании на основе ролей контроля доступа, описанный здесь: http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

Этот путь , вы бы установили разные роли для пользователей и пользователей бэкэнд. Если пользователь с разными привилегиями пытался получить доступ к неправильной области сайта, вы можете вывести его и перенаправить на страницу входа.

Смежные вопросы