docs(hmr): flux HMR avec idnot via dev3 et state [skip ci]

This commit is contained in:
NicolasCantu 2025-09-24 19:52:19 +02:00
parent 5e3fb8f07f
commit 7bb24d42ad

View File

@ -0,0 +1,37 @@
# Flux HMR avec idnot via dev3 et state (24/09/2025)
## Objectif
- Maintenir le **HMR** côté front (Next.js) sans casser le parcours dauth **idnot** en sappuyant sur un **state** serveur.
## Acteurs / Ports
- Front (Next.js, HMR): `:3000`
- Backend mini: `:8080`
- Nginx dev3: `dev3.4nkweb.com` (`443`/`80`), reverse vers `8080/300x/8090`
- Callback idnot: `https://dev3.4nkweb.com/idnot/callback`
## Création du state (front → back)
- Route: `POST /api/v1/idnot/state` (via `src/routes/index.ts``StateHandlers.createState`).
- Le back génère un `state` persisté côté serveur (via `SessionManager`) et le retourne au front.
- CORS dynamique (`src/config/index.ts`) autorise `https://*.4nkweb.com` et l`APP_HOST`.
## Redirection idnot
- Le front redirige lutilisateur vers idnot avec le `state` fourni.
- idnot renvoie ensuite vers `https://dev3.4nkweb.com/idnot/callback?code=...&state=...`.
## Callback via Nginx dev3 → backend
- `confs/nginx/dev3.4nkweb.com.conf`: location `= /idnot/callback` → proxy_pass backend `:8080`.
- Le back (route `GET /idnot/callback`) lit `state`, vérifie côté `SessionManager`, consomme `code`, finalise login/attachement.
## Pourquoi le HMR ne casse pas le flow
- Le couplage se fait via le `state` stocké à chaud côté serveur, pas via létat volatile du front.
- Même si le front change de bundle (HMR), le `state` reste valide jusquau callback.
- CORS permet au front HMR dappeler le back sans friction.
## Rôle de dev3
- Point dentrée HTTPS stable pour le callback.
- Reverse proxy vers 8080 (back), 300x (front), 8090 (relay), avec 80 → 301 → HTTPS.
- Gère les réécritures nécessaires (ex: `/storage`).
## Résultat
- HMR actif, parcours idnot fiable: le `state` maintenu côté back assure la continuité entre redirection et callback.