Одна авторизация на frontend и backend

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
d1mon
Сообщения: 2
Зарегистрирован: 2016.12.13, 14:01

Одна авторизация на frontend и backend

Сообщение d1mon » 2016.12.13, 14:26

Использую yii2, шаблон advanced. База пользователей одна на frontend и backend. Когда у frontend и backend были собственные страницы авторизации, то не было проблем. Потом я оставил авторизацию только в frontend, настройки сделал одинаковыми:

Код: Выделить всё

//backend/config/main.php
...
'user' => [
            'identityClass' => 'common\models\User',
            'identityCookie' => ['name' => '_identity-infosite', 'httpOnly' => true],
            'enableAutoLogin' => true,
            'loginUrl' => ['/../'], // Если нужна авторизация, то перенаправляем на frontend.
        ],
        'session' => [
            // this is the name of the session cookie used for login on the backend
            'name' => 'info-site',
        ],
...

//frontend/config/main.php
...
 'user' => [
            'identityClass' => 'common\models\User',
            'identityCookie' => ['name' => '_identity-infosite', 'httpOnly' => true],
            'enableAutoLogin' => true,
        ],
        'session' => [
            // this is the name of the session cookie used for login on the frontend
            'name' => 'info-site',
        ],
...
 
Оно работает так, как я хотел. Пользователь авторизовавшись в frontend, если имеет права на backend, то может туда спокойно входить. Проблема в том, что по истечении времени сессии, если попытаться обратиться к любой странице (контроллеру) backend, то пользователя перекидывает на frontend. Неприятно, когда работаешь например с редактором долго, потом пытаешься сохранить и тут такое. :shock:

Если до этого сессию обновить (обратиться в соседней вкладке браузера к любой странице frontend), то проблемы нет, переброс с backend на frontend не происходит.

Подскажите пожалуйста, что я не донастроил? С Yii2 знаком не очень давно. Тонкостей работы не знаю.

Аватара пользователя
samdark
Администратор
Сообщения: 9105
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Одна авторизация на frontend и backend

Сообщение samdark » 2016.12.15, 00:07

Всё донастроили. Наверняка у вас где-то в frontend выставляется returnUrl, а так как у вас между двумя приложениями всё общее, URL для возврата тоже.

d1mon
Сообщения: 2
Зарегистрирован: 2016.12.13, 14:01

Re: Одна авторизация на frontend и backend

Сообщение d1mon » 2017.01.27, 12:25

Косяк был в том, что есть еще файлы локальных настроек main-local.php и там есть параметр cookieValidationKey. Был не внимателен, данный ключ оказался разным для frontend и backend.

Shketkol
Сообщения: 15
Зарегистрирован: 2016.04.10, 17:33

Re: Одна авторизация на frontend и backend

Сообщение Shketkol » 2017.02.12, 09:19

d1mon. А можно поп подробней как вы настроили розграничение

Ответить