Page création mot de passe (lien email) – Front + API #118

Closed
opened 2026-03-11 21:26:04 +00:00 by jmartin · 2 comments
Owner

Contexte

L'e-mail « inscription validée » (ex. assistante maternelle, aperçu lié au #28) contient un lien du type :

https://app.ptits-pas.fr/create-password?token=<uuid>

(bouton « Créer mon mot de passe » + même URL en texte secours). Ce lien sert à définir le mot de passe initial et activer le compte.

Ancienne mention /creer-mot-de-passe dans ce ticket : à ne pas utiliser — l'URL réelle des envois est /create-password.

Backend

Sous le préfixe global api/v1 :

  • GET /api/v1/auth/verify-token?token=<uuid> — jeton valide ou 404 (invalide, expiré, déjà utilisé).
  • POST /api/v1/auth/create-password — JSON { "token", "password", "password_confirmation" } (voir CreatePasswordDto : min 8 car., au moins une majuscule et un chiffre ; le contrôleur vérifie aussi l'égalité des deux champs).

À garder aligné avec les templates d'e-mail (URL publique exacte).

Frontend

  • Route /create-password dans app_router.dart (query token).
  • Écran Créer mon mot de passe : mot de passe + confirmation, règles identiques au backend.
  • Au chargement (ou avant affichage du formulaire) : verify-token ; si 404 → message neutre du type « lien invalide ou expiré ».
  • Soumission : create-password ; gérer 400 / 404 ; succès → redirection /login + message de confirmation.
  • Prévoir lien vers login ; renvoi d'e-mail si exposé par l'API (ex. resend AM / parents selon spec).

Critères d'acceptation

  • Le clic depuis l'e-mail ouvre une page dédiée sur /create-password.
  • Saisie + confirmation avec règles de complexité.
  • Après succès, connexion possible sur /login.
  • Token invalide / expiré : message clair + accès login (et renvoi d'e-mail si applicable).

Références

  • #43 — même périmètre front, mêmes endpoints ; éviter le double travail.
  • Code : backend/src/routes/auth/auth.controller.ts (verify-token, create-password), dto/create-password.dto.ts.
  • Sujet d'e-mail de test observé : [APERÇU #28 AM] P'titsPas — Inscription validée : créez votre mot de passe.
## Contexte L'e-mail « inscription validée » (ex. **assistante maternelle**, aperçu lié au **#28**) contient un lien du type : **https://app.ptits-pas.fr/create-password?token=`<uuid>`** (bouton « Créer mon mot de passe » + même URL en texte secours). Ce lien sert à **définir le mot de passe initial** et activer le compte. > Ancienne mention `/creer-mot-de-passe` dans ce ticket : **à ne pas utiliser** — l'URL réelle des envois est **`/create-password`**. ## Backend Sous le préfixe global `api/v1` : - `GET /api/v1/auth/verify-token?token=<uuid>` — jeton valide ou **404** (invalide, expiré, déjà utilisé). - `POST /api/v1/auth/create-password` — JSON `{ "token", "password", "password_confirmation" }` (voir `CreatePasswordDto` : min 8 car., au moins une majuscule et un chiffre ; le contrôleur vérifie aussi l'égalité des deux champs). À garder aligné avec les **templates d'e-mail** (URL publique exacte). ## Frontend - Route **`/create-password`** dans `app_router.dart` (query `token`). - Écran **Créer mon mot de passe** : mot de passe + confirmation, règles **identiques au backend**. - Au chargement (ou avant affichage du formulaire) : `verify-token` ; si **404** → message neutre du type « lien invalide ou expiré ». - Soumission : `create-password` ; gérer **400** / **404** ; succès → redirection **`/login`** + message de confirmation. - Prévoir lien vers **login** ; renvoi d'e-mail si exposé par l'API (ex. resend AM / parents selon spec). ## Critères d'acceptation - [ ] Le clic depuis l'e-mail ouvre une page dédiée sur **`/create-password`**. - [ ] Saisie + confirmation avec règles de complexité. - [ ] Après succès, connexion possible sur **`/login`**. - [ ] Token invalide / expiré : message clair + accès login (et renvoi d'e-mail si applicable). ## Références - **#43** — même périmètre front, mêmes endpoints ; éviter le double travail. - Code : `backend/src/routes/auth/auth.controller.ts` (`verify-token`, `create-password`), `dto/create-password.dto.ts`. - Sujet d'e-mail de test observé : `[APERÇU #28 AM] P'titsPas — Inscription validée : créez votre mot de passe`.
jmartin added this to the 0.1.0 milestone 2026-04-13 22:04:24 +00:00
jmartin added the
v0.1.0
label 2026-04-13 22:04:47 +00:00
Author
Owner

E-mail réel (parent, 2026-04-22) — même mécanique que l’aperçu AM : sujet « Compte parent validé : créez votre mot de passe », bouton Créer mon mot de passe, lien secours https://app.ptits-pas.fr/create-password?token=<uuid> (ex. dossier 2026-000014). Confirme que la route front à implémenter est bien /create-password pour parents et AM.

**E-mail réel (parent, 2026-04-22)** — même mécanique que l’aperçu AM : sujet « Compte parent validé : créez votre mot de passe », bouton **Créer mon mot de passe**, lien secours **`https://app.ptits-pas.fr/create-password?token=<uuid>`** (ex. dossier `2026-000014`). Confirme que la route front à implémenter est bien **`/create-password`** pour parents et AM.
Author
Owner

Livré sur master (squash 46d0f82) et intégré dans develop (e887562).

Contenu : page /create-password (vérification token + formulaire), appels GET /auth/verify-token et POST /auth/create-password, stratégie URL path pour les liens e-mail sans hash, tests backend associés.

Fermeture suite au merge.

Livré sur `master` (squash `46d0f82`) et intégré dans `develop` (`e887562`). **Contenu** : page `/create-password` (vérification token + formulaire), appels `GET /auth/verify-token` et `POST /auth/create-password`, stratégie URL path pour les liens e-mail sans hash, tests backend associés. Fermeture suite au merge.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jmartin/petitspas#118
No description provided.