Усовершенствованное приложение Yii2 с общим сеансом не выполняет автоматический вход в систему по истечении времени ожидания сеанса - PullRequest
0 голосов
/ 05 июня 2018

Я новичок здесь. У меня есть проблема, связанная с общими сеансами в расширенном шаблоне Yii2.

У меня есть расширенное приложение yii2 с 4 дополнительными приложениями:

frontend - landing page, login
backend - admin panel
customer - panel for customers
provider - panel for providers

У меня естьприложение, в которое я всегда вхожу из приложения frontend, и в зависимости от моего role меня перенаправляют на приложения customer, provider или backend.

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

Поскольку он не запрашивает у меня учетные данные снова, кажется, что я могу автоматически войти в систему с помощью приложения frontend, но автоматический вход не работает в других трех приложениях ..

Я сделал общий сеанс дляВсе мои приложения используют ответ в этом выпуске:
Yii2 Advanced - Совместное использование сеанса между внешним интерфейсом и основным сайтом

Заранее спасибо

1 Ответ

0 голосов
/ 05 июня 2018

Включен ли параметр enableAuoLogin во всех ваших приложениях?

'enableAutoLogin' => true,

Если да, даже если вы делили сеанс между приложениями, когда вы впервые выполнили команду php init (для yii2-advanced), обратите внимание, что он генерирует разные cookieValidationKey для каждого приложения.Эти ключи проверки используются для автоматического входа в систему.Поскольку у вас одинаковые файлы cookie для всех ваших приложений, то cookieValidationKey также должны быть одинаковыми.

Эти ключи проверки хранятся в файле конфигурации main-local.php для каждого приложения (frontend, backend папок .. в вашем случае, я полагаю, у вас есть дополнительные папки customer и provider)

Одним из решений является копирование-вставка cookieValidationKey из frontend/config/main-local.php в другие main-local.php файлов.В идеале вам нужно изменить файл init в корневой папке, чтобы он генерировал один cookieValidationKey для всех ваших модулей / приложений.

Надеюсь, это помогло.

...