Программирование, веб-кодинг

Одновременная авторизация Yii2 на поддоменах. Cookies на поддоменах

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

Одновременная авторизация Yii2 на поддоменах. Cookies на поддоменах

Для примера возьмем два сайта site.ru и en.site.ru.

Для сквозной авторизации на поддоменах достаточно поправить конфигурацию вашего приложения Yii2:

'components' => [
    ...
    'user' => [
    ...
        'identityCookie' => [ // <---- here!
            'name' => '_identity',
            'httpOnly' => true,
            //'path' => '/',
            'domain' => '.site.ru',
        ],
        '''
    ],
...

Мы прописали домен для COOKIE, что позволяет авторизационным данным сохраняться как на основном домене, так и на поддомене.

После этого было замечено, что в случае выхода с сайта (Yii::$app->user->logout()) — пользователь остается авторизованным на другом домене. Проблема решается аналогично как и для Yii1 — добавлением пары строчек в конфигурацию:

'components' => [
    ...
    'session' => [
        'cookieParams' => [
            'domain' => '.site.ru',
            'httpOnly' => true,
            //'path' => '/',
        ],
        'name' => 'PHPBACKSESSID',
    ],
    ...



По мотивам – https://ittricks.ru/programmirovanie/1023/odnovremennaya-avtorizaciya-yii2-na-poddom


Читайте также
18 марта 2017
... Программирование, веб-кодинг
Yii2: Ссылки на следующий и предыдущий пост
Полезно под текстом статьи дать ссылки на предыдущую и следующую статью для удобства ориентирования пользователя


27 января 2017
... Программирование, веб-кодинг, Расширения, виджеты
Yii2 GridView - виджет таблицы данных
Разбираемся как использовать виджет GridView в своих проектах