Не определенно проблема с Laravel, я предполагаю, но это каркас PHP, который я использую.Поддержание сеанса между субдоменами в Laravel PHP и AngularJS
У меня есть следующие подобласти: app.hostname.dev
и api.hostname.dev
У меня есть Laravel PHP приложение с API на API. и приложение AngularJS SPA в приложении.
Если я создаю переменную сеанса в API, она доступна только для этого поддомена. Если я делаю запрос GET AJAX из front-end, var_dump ниже возвращает NULL. Если я изменю конечную точку API на тот же поддомен (app.hostname.dev), я получу правильную переменную сеанса.
//Session::put('test', 'TESTING');
var_dump(Session::get('test'));
Вот моя Laravel настройка сеанса:
'driver' => 'cookie', // also tried database
'path' => '/',
'domain' => '.hostname.dev',
Вот мои настройки: AngularJS
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
Я думал настройки выше будут достаточно, чтобы обеспечить перекрестные сессии домена?
UPDATE
Проблема не является кросс проблема домен, но больше похоже на то, что запрос приходит через AJAX. В качестве seession var, созданного на app.
, можно найти на api.
, однако он недоступен либо через запрос ajax get.
Лучше поставить' header (...) 'в' app/filters.php' в 'App :: before', который выполняется перед запросом , Routes.php не несет ответственности за заголовок или заботится о нем, поэтому не оставляйте его там. – davidnknight
Хорошее спасибо! – iamjonesy