Одновременная авторизация Yii2 на поддоменах
Столкнулся с необходимостью организовать мультиязычный сайт на Yii2 с использованием поддоменов.
Достаточно хорошо тема описана в интернете, но возникла небольшая проблема — при выходе (Yii::$app->user->logout()) пользователь выходит только с одного домена, на другом он остается авторизованным.
Для примера возьмем два сайта site.ru и en.site.ru.
Для сквозной авторизации на поддоменах достаточно поправить конфигурацию вашего приложения Yii2:
1 2 3 4 5 6 7 8 9 10 11 12  | 'components' => [ ...  'user' => [ ...   'identityCookie' => [       'name' => '_identity',         'httpOnly' => true,         'path' => '/',         'domain' => '.site.ru',    ], ''' ],  | 
Мы прописали домен для COOKIE, что позволяет авторизационным данным сохраняться как на основном домене, так и на поддомене.
После этого было замечено, что в случае выхода с сайта (Yii::$app->user->logout()) — пользователь остается авторизованным на другом домене. Решение было найдено на форуме Yii, однако, для первой версии. Немного «пошаманив», добился результата, проблема решается аналогично — добавлением пары строчек в конфигурацию:
1 2 3 4 5 6 7 8  | 'components' => [ ...  'session' => [ ...   'cookieParams' =>      ['domain' => '.site.ru'] ''' ],  | 
Комментарии к Одновременная авторизация Yii2 на поддоменах (1)
Михаил Петров
Помогло, спасибо!