Одновременная авторизация 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)
Михаил Петров
Помогло, спасибо!