Да, есть альтернативный и более правильный способ решения вашего вопроса.
Я постараюсь ответить на две части: сначала включить cookie-файлы между корневыми и поддоменами, а затем - как это сделать в Laravel.
Сделать куки доступными между корневыми и поддоменами :
При получении заголовков файлов cookie браузер может быть настроен для совместного использования файлов cookie между поддоменами. Это достигается путем добавления домена в заголовок Set-Cookie
.
Set-Cookie: user=JohnDoe; domain=testdomain.com
Начиная с RFC-6265 , приведенный выше синтаксис сообщит браузеру, что файлы cookie, установленные на test.com
, должны быть доступны для всех поддоменов (т. Е. a.test.com
, xyz.test.com
). Для более подробного объяснения см. этот ответ здесь, на SO.
Установить файлы cookie, которые будут доступны на поддоменах в Laravel :
Согласно документации Laravel responses
функция cookie
принимает все аргументы, принятые функцией [setcookie][4]
php (см. path
и domain
аргументы).
Например, для одного можно написать:
$path = '/'; // make cookie available on all paths
$domain = "test.com"; // according to rfc6265 make available on root and subdomains
return $response($content)->cookie($name, $value, $minutes, $path, $domain);
Другой способ для совместного использования всех файлов cookie в корне и поддоменах исходит из фрагмента JacobBennet . Предлагается установить желаемое значение переменной domain
в config/session.php
. Тогда все (!) куки будут доступны для поддоменов.
Сторона интерфейса (React) не должна делать ничего особенного, кроме «перенаправления».