У меня есть веб-сервер Laravel, который управляет несколькими доменами, такими как:Laravel Междоменное Auth печенье и фильтры
site1.domain.com, site2.domain.com, site3.domain.com
я с большим успехом добавил имя сайта в процессе аутентификации пользователя и, таким образом, есть отдельная таблица пользователей по отношению к сайтам. На сайтах нет постоянных пользователей, и они считаются уникальными. Это хорошо работает.
Для каждого сайта есть бэкэнд, например.
site1.domain.com/office
Для этого у меня есть другой набор пользователей модели Admin. Чтобы сделать эту работу, у меня есть довольно сложный набор auth-путей, другой контроллер и все такое. Я достигаю этого со следующим фильтром.
App::before(function($request)
{
if ($request->is('office*'))
{
Config::set('auth.driver', 'eloquent.admin');
Config::set('auth.model', 'Admin');
Эти администраторы являются общими для всех доменов. То есть имя пользователя уникально в модели администратора.
Это хорошо работает, но нужно двигаться дальше.
Я бы хотел, чтобы логин и выход были согласованы между сайтами. То есть, если администратор вошел в один офис сайта, они вошли в них все, и они вышли из системы, они вышли из них.
Я попытался обновить фильтр таким образом:
App::before(function($request)
{
if ($request->is('office*'))
{
Config::set('auth.driver', 'eloquent.admin');
Config::set('auth.model', 'Admin');
Config::set('session.path', '/office');
Config::set('session.domain', '.domain.com'); // tried without leading . too
}
});
Однако, если я анализирую свои куки в браузере, домен и информация о пути не была затронута и остается site.domain.com и/соответственно ,
Можете ли вы рассказать мне, как изменить атрибуты cookie сеанса на основе моего запроса?
Существует зависимость от сайта. В той мере, в которой существует множество отношений между администратором и сайтом, которое определяет, может ли администратор получить доступ к/офису конкретного сайта.
Я обеспокоен тем, что администратор вошел в систему, они получат доступ к любому сайту.
Мое намерение состоит в том, чтобы написать дополнительный фильтр «can admin this site», который будет проверять отношения.
Вы считаете это подходящей мерой в контексте предлагаемого междоменного auth для админов?
Если вы не против, чтобы все пользователи делились между сайтами, вы можете просто изменить домен cookie на '.domain.com'. Другой вариант - создание нового средства проверки подлинности/модели, который генерирует/проверяет отдельные файлы cookie JWT. – Sigismund