feat(#118): création du mot de passe depuis le lien e-mail

Livre le parcours complet « lien e-mail → page web → mot de passe initial » :
- API : vérification du token (comportement neutre si invalide/expiré) et création du mot de passe ; tests associés.
- Front : route /create-password, appels verify-token et create-password, validation alignée sur le backend, retour login après succès.
- Web : stratégie d’URL en path pour que les deep links /create-password?token=… fonctionnent sans redirection vers #/login.

Refs: #118
Made-with: Cursor
This commit is contained in:
2026-04-23 16:45:47 +02:00
parent dff108c7d5
commit 46d0f82f54
11 changed files with 421 additions and 6 deletions
+3 -1
View File
@@ -140,7 +140,9 @@ export class AuthService {
async verifyCreatePasswordToken(token: string) {
const cleanedToken = token?.trim();
if (!cleanedToken) {
throw new BadRequestException('Token manquant');
// #118: côté front, un token absent doit être traité comme lien invalide/expiré.
// On renvoie donc la même réponse neutre 404 que pour les autres cas invalides.
throw new NotFoundException('Token invalide, expiré, ou déjà utilisé.');
}
const user = await this.usersRepo.findOne({