fix(auth) : renomme le cookie JWT en BEARER_LESSTIME (LST-72)
É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:
@@ -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
|
- **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
|
- **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)
|
- **Docker** : PHP-FPM + Node 24, Nginx (port 8082), PostgreSQL (port 5435)
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
|
|||||||
@@ -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).
|
Toutes les routes API sont préfixées `/api` (API Platform).
|
||||||
|
|
||||||
- Documentation auto-générée : **http://localhost:8082/api**
|
- 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
|
## Serveur MCP
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,15 @@ lexik_jwt_authentication:
|
|||||||
enabled: false
|
enabled: false
|
||||||
cookie:
|
cookie:
|
||||||
enabled: true
|
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:
|
query_parameter:
|
||||||
enabled: false
|
enabled: false
|
||||||
set_cookies:
|
set_cookies:
|
||||||
BEARER:
|
BEARER_LESSTIME:
|
||||||
lifetime: '%env(int:JWT_COOKIE_TTL)%'
|
lifetime: '%env(int:JWT_COOKIE_TTL)%'
|
||||||
samesite: lax
|
samesite: lax
|
||||||
path: /
|
path: /
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ security:
|
|||||||
target: /login
|
target: /login
|
||||||
enable_csrf: false
|
enable_csrf: false
|
||||||
delete_cookies:
|
delete_cookies:
|
||||||
BEARER:
|
BEARER_LESSTIME:
|
||||||
path: /
|
path: /
|
||||||
|
|
||||||
# Activate different ways to authenticate:
|
# Activate different ways to authenticate:
|
||||||
|
|||||||
Reference in New Issue
Block a user