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

Одновременная авторизация 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