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

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

Contexte

L'email de bienvenue envoyé aux assistantes maternelles (et futurs parents) contient un lien du type :
{app_url}/creer-mot-de-passe?token=...

Ce lien doit permettre à l'utilisateur de créer son mot de passe pour activer son compte (champ token_creation_mdp en base).

À faire

Backend

  • Exposer une API (ex. POST /api/v1/auth/creer-mot-de-passe ou POST /api/v1/auth/set-password) acceptant :
    • token (query ou body)
    • nouveau_mot_de_passe
    • confirmation
  • Vérifier que le token existe en base, qu'il n'est pas expiré (token_creation_mdp_expire_le).
  • Mettre à jour le mot de passe (hash bcrypt), puis invalider le token (null) pour éviter toute réutilisation.

Frontend

  • Ajouter la route /creer-mot-de-passe (query param token) dans app_router.dart.
  • Créer l'écran « Créer mon mot de passe » :
    • Champs : mot de passe + confirmation.
    • Règles de validation identiques au changement de mot de passe (8 car. min, majuscule, minuscule, chiffre).
    • Appel à l'API avec le token.
  • Gérer les cas :
    • Token invalide ou expiré → message clair + lien vers login ou « Renvoyer l'email ».
    • Succès → redirection vers /login avec message de confirmation.

Critères d'acceptation

  • L'utilisateur qui clique sur le lien de l'email arrive sur une page dédiée.
  • Il peut saisir et confirmer son mot de passe (règles de complexité).
  • À la soumission, l'API met à jour le mot de passe ; le compte peut ensuite se connecter.
  • Token expiré ou invalide : message clair et lien vers login ou renvoi d'email.

Références

  • Email de bienvenue AM : MailService.sendAMWelcomeEmail() avec lien {appUrl}/creer-mot-de-passe?token=...
  • Renvoi email : POST /api/v1/auth/resend-am-welcome
## Contexte L'email de bienvenue envoyé aux assistantes maternelles (et futurs parents) contient un lien du type : `{app_url}/creer-mot-de-passe?token=...` Ce lien doit permettre à l'utilisateur de **créer son mot de passe** pour activer son compte (champ `token_creation_mdp` en base). ## À faire ### Backend - Exposer une API (ex. `POST /api/v1/auth/creer-mot-de-passe` ou `POST /api/v1/auth/set-password`) acceptant : - `token` (query ou body) - `nouveau_mot_de_passe` - `confirmation` - Vérifier que le token existe en base, qu'il n'est pas expiré (`token_creation_mdp_expire_le`). - Mettre à jour le mot de passe (hash bcrypt), puis invalider le token (null) pour éviter toute réutilisation. ### Frontend - Ajouter la route **`/creer-mot-de-passe`** (query param `token`) dans `app_router.dart`. - Créer l'écran **« Créer mon mot de passe »** : - Champs : mot de passe + confirmation. - Règles de validation identiques au changement de mot de passe (8 car. min, majuscule, minuscule, chiffre). - Appel à l'API avec le token. - Gérer les cas : - Token invalide ou expiré → message clair + lien vers login ou « Renvoyer l'email ». - Succès → redirection vers `/login` avec message de confirmation. ## Critères d'acceptation - [ ] L'utilisateur qui clique sur le lien de l'email arrive sur une page dédiée. - [ ] Il peut saisir et confirmer son mot de passe (règles de complexité). - [ ] À la soumission, l'API met à jour le mot de passe ; le compte peut ensuite se connecter. - [ ] Token expiré ou invalide : message clair et lien vers login ou renvoi d'email. ## Références - Email de bienvenue AM : `MailService.sendAMWelcomeEmail()` avec lien `{appUrl}/creer-mot-de-passe?token=...` - Renvoi email : `POST /api/v1/auth/resend-am-welcome`
Sign in to join this conversation.
No description provided.