fix(auth) : renomme le cookie JWT en BEARER_LESSTIME (LST-72)
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m22s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m37s

Évite la collision de cookie sur le domaine localhost en dev : plusieurs
apps Symfony (ex: Starseed) posaient toutes un cookie `BEARER` partagé,
se faisant écraser l'une l'autre → déconnexions croisées. Le cookie est
désormais nommé par app.

- lexik : token_extractors.cookie.name + clé set_cookies
- security : logout.delete_cookies
- docs (CLAUDE.md, README) mises à jour

Note : vider une fois les cookies de localhost pour purger l'ancien BEARER.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-26 16:02:51 +02:00
parent 5d1cc09a49
commit 71c6ba1ce5
4 changed files with 9 additions and 5 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ Application de gestion de projet. Monorepo Symfony 8 (API Platform 4) + Nuxt 4.
- **Backend** : PHP 8.4, Symfony 8.0, API Platform 4, Doctrine ORM, PostgreSQL 16
- **Frontend** : Nuxt 4 (SSR off / SPA), Vue 3, Pinia, Tailwind CSS, @malio/layer-ui, nuxt-toast, @nuxtjs/i18n, @nuxt/icon
- **Auth** : JWT HTTP-only cookie (lexik/jwt-authentication-bundle), login à `/login_check`, cookie `BEARER`
- **Auth** : JWT HTTP-only cookie (lexik/jwt-authentication-bundle), login à `/login_check`, cookie `BEARER_LESSTIME` (nommé par app pour éviter la collision avec d'autres apps Symfony sur `localhost` en dev)
- **Docker** : PHP-FPM + Node 24, Nginx (port 8082), PostgreSQL (port 5435)
## Structure
+1 -1
View File
@@ -188,7 +188,7 @@ Configuration : `infra/dev/.env.docker` (override local : `infra/dev/.env.docker
Toutes les routes API sont préfixées `/api` (API Platform).
- Documentation auto-générée : **http://localhost:8082/api**
- Auth : `POST /login_check` avec `{ username, password }` → cookie JWT `BEARER`
- Auth : `POST /login_check` avec `{ username, password }` → cookie JWT `BEARER_LESSTIME`
## Serveur MCP
@@ -9,11 +9,15 @@ lexik_jwt_authentication:
enabled: false
cookie:
enabled: true
name: BEARER
# Cookie nommé par app (BEARER_LESSTIME) pour éviter la collision avec
# d'autres apps Symfony servies sur le même domaine localhost en dev
# (ex: Starseed reste sur BEARER) : un cookie `BEARER` partagé se ferait
# écraser d'une app à l'autre → déconnexions croisées.
name: BEARER_LESSTIME
query_parameter:
enabled: false
set_cookies:
BEARER:
BEARER_LESSTIME:
lifetime: '%env(int:JWT_COOKIE_TTL)%'
samesite: lax
path: /
+1 -1
View File
@@ -47,7 +47,7 @@ security:
target: /login
enable_csrf: false
delete_cookies:
BEARER:
BEARER_LESSTIME:
path: /
# Activate different ways to authenticate: