Но выполняется запрос со страницы SPA:
Код: Выделить всё
axios.get('/sanctum/csrf-cookie').then(response => {
console.log('response::')
console.log(response)
})
Код: Выделить всё
status: 204, statusText: "No Content"
и, кажется, я следил за этим в серверном приложении, как:
В .env я добавил/изменил строки:
Код: Выделить всё
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost
SESSION_DRIVER=cookie
В /routes/api.php я изменил:
Код: Выделить всё
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
//Route::middleware('auth:api')->get('/user', function (Request $request) {
// return $request->user();
//});
Код: Выделить всё
'paths' => [
'api/*',
'/login',
'/logout',
'sanctum/csrf-cookie'
],
'supports_credentials' => true,
Код: Выделить всё
'stateful' => explode(',', env(
'SANCTUM_STATEFUL_DOMAINS',
'localhost:8080,localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1,'.parse_url(env('APP_URL'), PHP_URL_HOST)
)),
...
'middleware' => [
'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class,
],
Код: Выделить всё
protected $middlewareGroups = [
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'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,
],
];
SPA vue frontend и Laravel 7 backend Sanctum
Я попробовал измените файл app/Providers/RouteServiceProvider.php,
но изначально он был другим, как указано в ветке выше:
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/67285547/why-axios-request-sanctum-csrf-cookie-in-vuejs-to-laravel-sanctum-returns-204-n[/url]