Появляются странные файлы cookie laravel sanctum
Я пишу приложение на laravel sanctum, используя breeze для аутентификации пользователя и vue3 с pinia. И вроде бы у меня работает корректно вход пользователя в систему, регистрация, выход, но вот проблема в том, что при каждом открытии страницы в режиме разработчика->приложение->файлы cookie, то там у меня появляются 2 по сути нужных мне куки laravel_session и XSRF-TOKEN, но при этом постоянно появляется какой то куки с непонятным названием, по типу такого: dHOR0NO6MzU3oACai6PsW6rJdbcJ1XatVnlcytY3. И так каждый раз. Также, при вызове какого то метода, который требует CSRF-TOKEN (по типу такого):
const getCsrfToken = async () => {
if (!document.cookie.includes('XSRF-TOKEN')) {
try {
await axios.get('/sanctum/csrf-cookie');
} catch (error) {
console.error("Ошибка получения CSRF токена", error);
}
}
};
и потом вызываем этот метод где то:
const login = async (email, password) => {
try {
await getCsrfToken(); // получаем CSRF токен
await axios.post('/api/login', { email, password });
await getUser(); // получаем информацию о пользователе
} catch (error) {
console.error('Ошибка авторизации', error);
throw error;
}
};
и вот если так делать, то каждый раз, при вызове метода getCsrfToken у меня будет создаваться еще 2 таких непонятных куки. И так будет происходить до тех пор, пока у меня не появится ошибка 431 в браузере, а после очистки куки она исчезает. И из-за этого, как мне кажется, я не могу продолжать нормально делать приложение, так как я хотел сделать авторизацию каких-то действий пользователя по ролям, но из-за ошибки 403 (Forbidden) я это сделать не могу, и мне кажется, что тут как раз как-то да влияют эти куки непонятные.
Я вроде бы настроил все как нужно в конфигурационных файлах в laravel, но у меня все равно создаются вот эти куки.
CORS.php файл:
'paths' => ['api/*', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => [env('FRONTEND_URL', 'http://localhost:5173')],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
.env файл:
FRONTEND_URL=http://localhost:5173
SESSION_COOKIE=laravel_session
SANCTUM_STATEFUL_DOMAINS=localhost:5173
SESSION_DRIVER=cookie
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=localhost
session.php файл:
'domain' => env('SESSION_DOMAIN', null),
'same_site' => env('SESSION_SAME_SITE', 'lax'),
'http_only' => env('SESSION_HTTP_ONLY', true),
'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'table' => env('SESSION_TABLE', 'sessions'),
'driver' => env('SESSION_DRIVER', 'cookie'),
sanctum.php файл:
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'localhost:5173')),
'guard' => ['web'],
'expiration' => null,
'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''),
'middleware' => [
'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class,
'encrypt_cookies' => Illuminate\Cookie\Middleware\EncryptCookies::class,
'validate_csrf_token' => Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class,
],
Вообщем что я только не менял, то все бестолку.
Также у меня следующий код есть на frontend в pinia:
axios.defaults.baseURL = 'http://localhost:8000';
axios.defaults.withCredentials = true;
axios.defaults.withXSRFToken = true;
Ну и вообщем так, у меня метод getCsrfToken вызывается в методах: login, register, logout, а так же в методе, который требует, чтобы пользователь был авторизован под определнной ролью, чтобы добавлять новые данные в БД. И при вызове каждого метода у меня создается 2 новых куки, которых по сути быть не должно. Я новичек в backend, так что не судите строго. Надеюсь на помощь