Appearance
BDD-11 — Mot de passe oublie
1. User Story
En tant que client externe,
Je veux reinitialiser mon mot de passe,
Afin de retrouver l'acces a mon espace si je l'ai oublie.
2. Criteres d'acceptance
- Un lien "Mot de passe oublie" est accessible depuis l'ecran de connexion.
- L'utilisateur recoit un email avec un lien de reinitialisation.
- Ce lien n'est utilisable qu'une seule fois.
3. Perimetre fonctionnel
- Lien depuis la page de connexion :
front/src/pages/login/LoginPage.vue - Page de demande de reinitialisation :
front/src/pages/login/ForgotPasswordPage.vue - Page de saisie du nouveau mot de passe :
front/src/pages/login/ResetPasswordPage.vue - Action store pour l'envoi de l'email :
front/src/stores/auth-store.js(requestPasswordReset) - Routes ajoutees :
front/src/router/routes.js(/login/forgot-password,/login/reset-password) - Interception du lien recovery Supabase :
front/src/App.vue(guardbeforeEach) - Activation du plugin Notify Quasar :
front/src/main.js
4. Points de verification
- Presence du lien "Mot de passe oublie ?" sur la page de connexion.
- Envoi d'un email de reinitialisation apres saisie d'un email valide.
- Affichage d'un message de confirmation apres envoi.
- Redirection vers
/login/reset-passwordlors du clic sur le lien dans l'email. - Formulaire de saisie du nouveau mot de passe avec confirmation.
- Notification de succes et redirection vers
/loginapres changement. - Message d'erreur si le lien est invalide, expire ou deja utilise (token OTP a usage unique, gere par Supabase).
5. Tests associes
- Tests unitaires/composants :
front/src/__tests__/pages/login/ForgotPasswordPage.spec.jsfront/src/__tests__/pages/login/ResetPasswordPage.spec.jsfront/src/__tests__/stores/auth-store.spec.js(sectionrequestPasswordReset)
- Scenarios E2E recommandes (Playwright) :
- clic "Mot de passe oublie" -> navigation vers
/login/forgot-password - saisie email -> message de confirmation
- clic lien email -> formulaire de reinitialisation
- saisie nouveau mot de passe -> redirection
/login - reutilisation du lien -> message d'erreur
- clic "Mot de passe oublie" -> navigation vers
