docs(tickets): #24 livré backend, #43 alignement API verify-token/create-password

Made-with: Cursor
This commit is contained in:
MARTIN Julien 2026-04-16 22:56:42 +02:00
parent 8105c01501
commit b0594c32e7

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
--- ---