У меня проблема с сессиями в Laravel. Мой проект состоит из двух проектов, один - API, а другой - WebApp. Оба с Laravel 5.5.
Проблема в том, что я хочу сохранить сеанс в моем проекте API, но он не сохраняется. Я сохраняю сессию в api.php следующим образом:
Route::get('test', function () {
session(['data' => "data"]);
session()->save();
});
После некоторого исследования я нашел этот вопрос, и люди говорят, что нужно включить в Kernel.php эти две строки:
protected $middleware = [
//...
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
Я уже добавил эти две строки, и проблема не устранена.
То же самое и с Guzzle. Из своего веб-приложения я выполняю GET-вызов своего API. В методе, вызываемом в API, я сохраняю сеанс, и когда я получаю сеанс в другом методе API, я получаю null, потому что сеанс не был сохранен!
Я подозреваю, что проблемы Postman и Guzzle с сессиями связаны, и что мне чего-то не хватает.
Мои файлы config\session.php по умолчанию. Я знаю, что у меня есть альтернатива для сохранения сеансов в базе данных, но я бы предпочел оставить ее по умолчанию, но если у меня нет альтернативы, я изменю свой параметр SESSION_DRIVER с session.php с файл на база данных.






API есть и должны быть без сеанса / без состояния. Они не могут с этим справиться.
Вот почему используются аутентификации на основе токенов.
Для того, чтобы убедиться в этом. Запишите route в файл web.php и выберите его с postman или browser, тогда вы увидите информацию о сеансе, если таковая имеется.
Я знаю, что API-интерфейсы не должны иметь состояния, но мне нужно сохранить сеанс в моем проекте API, потому что из API я управляю платежами PayPal, поэтому, когда PayPal перенаправляет обратно на мой веб-сайт после оплаты, мне нужен доступ к корзине покупок, которую я сохранил в сеансе .
API есть и должны быть меньше сеансов. Они не могут с этим справиться. Вот почему используются аутентификации на основе токенов.