Маршруты из файла route / api.php по умолчанию не имеют промежуточного программного обеспечения StartSession
, потому что вызовы api считаются не сохраняющими состояние.Вы можете добавить это промежуточное программное обеспечение с EncryptCookies
в группу промежуточного программного обеспечения API в вашем файле app/Http/Kernel.php
следующим образом, с точной последовательностью:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
'throttle:60,1',
'bindings',
],
];
Работает для меня.Кроме того, подумайте, что вы можете настроить api
group точно так же, как web
group в вашем случае.
И не забудьте снова установить переменную сеанса с новой конфигурацией.