Здравствуйте! Пробую сделать аутентификация с помощью laravel, sanctum и react. Laravel находится по адресу agency.api, react по localhost:3000. Всё делаю по документации
Sanctum.
app/Http/Kernel.php - раскомментировал
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
config/cors.php
'supports_credentials' => true,
resources/js/bootstrap.js
axios.defaults.withCredentials = true;
.env
SANCTUM_STATEFUL_DOMAINS=localhost:3000
SESSION_DOMAIN=.agency.api
Потом делаю запрос
const http = axios.create({
baseURL: 'http://agency.api/',
withCredentials: true,
headers: {
'X-Requested-With': 'XMLHttpRequest',
},
});
const csrf = await http.get('/sanctum/csrf-cookie')
console.log('csrf = ', csrf);
Как я понимаю на этом этапе должны установится куки "XSRF-TOKEN" и "laravel_session", но их нет.
1.Что я делаю не так? Почему они не устанавливаются?
2.Если куки установятся и потом залогинится, тогда такие маршруты будут доступны только залогиненным пользователям?
Route::group(['middleware' => 'auth:sanctum'], function () {
Route::get('login/test', [LoginController::class, 'test']);
});
Ну и такой запрос выполняется с ошибкой
await http.get('/sanctum/csrf-cookie')
.then((res) => {
console.log('csrf = ', res);
http.post('/api/login', {
email: 'user@mail.ru',
password: 'password',
});
})
.catch((er) => {
console.log(er)
});
получаю это. 419 ошибка проверки CSRF как я понимаю