Совместное использование сеанса аутентификации Laravel на нескольких поддоменах из одного репо с использованием Forge - PullRequest
0 голосов
/ 18 сентября 2018

Я запускаю проект Laravel 5.7 (PHP 7.1), который направляет пользователей в разные субдомены в зависимости от их роли. У меня есть следующие настройки:

id.domain.com => Это домен авторизации, который регистрирует пользователей и перенаправляет учетную запись. admin.domain.com => это «CMS» и административный сервер. Customers.domain.com => это портал администрирования клиентов.

В настоящее время основной URL-адрес domain.com не является частью реализации Laravel и работает на другой платформе.

Вся маршрутизация подключается к промежуточному программному обеспечению «web», а к приложению - к «auth». В настоящее время я использую базу данных как SESSION_DRIVER и настроил SESSION_DOMAIN как ".domain.com".

Когда я запускаю проект через Homestead - каждый из поддоменов в качестве разных сайтов в файле YAML все указывает на одну и ту же кодовую базу, все вытягивают один и тот же файл ENV - это работает на 100% правильно.

Когда я захожу на id.domain.com, он определяет, что я «admin», и перенаправляет меня на admin.domain.com, и мой статус Auth остается неизменным.

Производство

Для производства я установил записи A для каждого домена, чтобы они указывали на один и тот же сервер Linode. Каждый домен затем настраивается в Laravel Forge как отдельные сайты. Каждый сайт тянет с одного и того же кода репо.

Я реплицировал один и тот же файл ENV и настройки сервера для каждого сайта, и все они используют одну и ту же базу данных и таблицу сеансов.

Однако, когда я захожу на id.domain.com - он аутентифицирует меня, перенаправляет меня в домен администратора, однако этот домен не имеет моего статуса аутентификации, поэтому перенаправляет меня обратно в домен идентификатора и непрерывно цикл завершается слишком большим количеством перенаправлений.

Я экспериментировал с одним и тем же APP_KEY, разными ключами, менял SESSION_DOMAIN, APP_DOMAIN, APP_URL - но с тем же эффектом.

Я уверен, что это где-то просто проблема конфигурации, поскольку база кода и логика прекрасно работают на Homestead с локальными доменами.

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

Любая помощь / руководство здесь будут очень благодарны!

...