Nuxt, не работает logout с привязанным доменом
Вкратце: У меня есть проект, запущенный в Docker, который состоит из нескольких API-контейнеров на PHP и фронтенда на Nuxt.js. Всё это работает через Nginx-прокси и доступно извне по доменному имени. Авторизация реализована через Cookies с помощью модуля @nuxtjs/auth.
Конфигурация Nuxt.js:
auth: {
baseURL: apiURL,
globalAppMiddleware: true,
provider: {
type: 'local',
endpoints: {
signIn: { path: 'auth/login', method: 'post' },
signOut: { path: 'logout', method: 'post' },
signUp: { path: 'auth/register', method: 'post' },
getSession: { path: 'auth/profile', method: 'get' },
},
pages: {
login: '/account/signin',
callback: '/account/confirm',
},
auth: {
token: {
storage: 'cookie',
cookie: {
name: 'auth_token',
options: {
path: '/',
domain: 'ОСНОВНОЙ ДОМЕН',
secure: true,
sameSite: 'none',
},
},
},
},
sessionDataType: {
user: 'user',
profile: 'profile',
exp: 'exp',
},
},
globalMiddlewareOptions: {
allow404WithoutAuth: true,
addDefaultCallbackUrl: '/account/confirm',
},
session: {
maxAge: 155 * 24 * 60 * 60,
updateAge: 24 * 60 * 60,
},
},
Проблема:
- При доступе к приложению по IP-адресу всё работает корректно.
- При доступе через доменное имя, после авторизации и попытки выйти из аккаунта, сессия не удаляется.
- При обновлении страницы пользователь остаётся авторизованным.
Выход из аккаунта реализован через стандартный метод:
<template>
<nuxt-link
class="dropdown-item"
@click="() => signOut({ callbackUrl: localePath('/logout') })"
>
<i class="mdi mdi-logout text-muted fs-16 align-middle me-1"></i>
<span class="align-middle" data-key="t-logout">Logout</span>
</nuxt-link>
<template>
<script>
const { signOut, status, data, token } = useAuth();
</script>
Почему при доступе через доменное имя сессия не удаляется при выходе из аккаунта, и как это можно исправить?
Я пробовал на стороне API выдавать сессию для определенных доменов, но это ничего не изменило.