Как некоторые из вас упоминали, вызов API не запускает сеанс, я полагаю, что это делается для того, чтобы избежать атак CSRF.
Одним из решений является использование паспорта :
Laravel упрощает аутентификацию API, используя Laravel Passport, который обеспечивает полную реализацию сервера OAuth2 для вашего приложения Laravel за считанные минуты.
Другое решение, возможно, более уязвимое (но в моем случае достаточно хорошее) - это начать сеанс по вызову 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' => [
'throttle:60,1',
'bindings',
],
];
И добавить к 'api'
запись следующего промежуточного программного обеспечения:
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
(я взял это решение из этой краткой статьи )