merge: doc tickets #24/#43 depuis develop

This commit is contained in:
MARTIN Julien 2026-04-16 22:56:47 +02:00
commit 241ce36b85

View File

@ -519,22 +519,24 @@ Finalisation de l'inscription parent (présentation, CGU, récapitulatif - inté
--- ---
### Ticket #24 : [Backend] API Création mot de passe ### Ticket #24 : [Backend] API Création mot de passe
**Estimation** : 3h **Estimation** : 3h
**Labels** : `backend`, `p2`, `auth`, `security` **Labels** : `backend`, `p2`, `auth`, `security`
**Statut** : ✅ TERMINÉ (livré sur `develop` + `master`, févr. 2026 — aligné ticket Gitea **#123** durcissement token)
**Description** : **Description** :
Créer les endpoints pour permettre aux utilisateurs de créer leur mot de passe via le lien reçu par email. Créer les endpoints pour permettre aux utilisateurs de créer leur mot de passe via le lien reçu par email.
**Tâches** : **Tâches** :
- [ ] Endpoint `GET /api/v1/auth/verify-token?token=<uuid>` - [x] Endpoint `GET /api/v1/auth/verify-token?token=<uuid>`
- [ ] Endpoint `POST /api/v1/auth/create-password` - [x] Endpoint `POST /api/v1/auth/create-password` (body : `token`, `password`, `password_confirmation`)
- [ ] Validation token (existe, non expiré, non utilisé) - [x] Validation token (existe, non expiré, non utilisé) + invalidation explicite si expiré
- [ ] Hash bcrypt + suppression token - [x] Hash bcrypt + suppression token (usage unique atomique côté SQL)
- [ ] Activation compte (`statut = actif`) - [x] Activation compte (`statut = actif`, `changement_mdp_obligatoire = false`)
- [ ] Tests unitaires - [ ] Tests unitaires / e2e (hors périmètre immédiat ; suite Jest actuelle à corriger séparément)
**Référence** : [20_WORKFLOW-CREATION-COMPTE.md](./20_WORKFLOW-CREATION-COMPTE.md#étape-7--création-du-mot-de-passe) **Référence** : [20_WORKFLOW-CREATION-COMPTE.md](./20_WORKFLOW-CREATION-COMPTE.md#étape-7--création-du-mot-de-passe)
**Suite** : alignement **frontend** → ticket **#43** (appels explicites ci-dessous).
--- ---
@ -898,13 +900,15 @@ Créer les étapes finales de l'inscription AM (présentation, CGU, récapitulat
**Description** : **Description** :
Créer l'écran de création de mot de passe (lien reçu par email). Créer l'écran de création de mot de passe (lien reçu par email).
**Dépendance backend** : ticket **#24** / **#123** — routes disponibles sous préfixe global `api/v1` (voir `backend/src/main.ts`).
**Tâches** : **Tâches** :
- [ ] Page `/create-password?token=<uuid>` - [ ] Page `/create-password?token=<uuid>` (lecture du `token` en query)
- [ ] Vérification token (appel API) - [ ] Au chargement (ou avant affichage formulaire) : `GET /api/v1/auth/verify-token?token=<uuid>` — si 404, message neutre type « lien invalide ou expiré »
- [ ] Formulaire MDP + confirmation - [ ] Formulaire MDP + confirmation
- [ ] Validation côté client (8 car, 1 maj, 1 chiffre) - [ ] Validation côté client (alignée backend : min 8 car., 1 maj., 1 chiffre — même règle que `change-password-required`)
- [ ] Appel API création MDP - [ ] Soumission : `POST /api/v1/auth/create-password` avec JSON `{ "token", "password", "password_confirmation" }` ; gérer 400 (ex. confirmation) / 404 (token)
- [ ] Redirection vers login - [ ] Succès → redirection vers login + message de succès
--- ---