implementation de nodemailer for email validation

This commit is contained in:
2026-06-26 14:01:38 +02:00
parent 45535e2b21
commit baa1b8ccc0
14 changed files with 5235 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
const express = require("express");
const { register, login, me } = require("../controllers/auth.controller");
const { register, login, verifyEmail, forgotPassword, resetPassword, me } = require("../controllers/auth.controller");
const authMiddleware = require("../middlewares/auth.middleware");
const validate = require("../middlewares/validate.middleware");
const { registerSchema, loginSchema } = require("../validations/auth.validation");
@@ -63,7 +63,99 @@ router.post("/login", validate(loginSchema), login);
* 200:
* description: Profil utilisateur
*/
router.get("/me", authMiddleware, me);
/**
* @swagger
* /api/auth/verify-email/{token}:
* get:
* summary: Vérification de l'adresse email
* tags:
* - Auth
* parameters:
* - in: path
* name: token
* required: true
* schema:
* type: string
* description: Token de validation envoyé par email
* responses:
* 200:
* description: Email vérifié avec succès.
* 400:
* description: Lien de validation invalide ou expiré.
* 500:
* description: Erreur serveur.
*/
router.get("/verify-email/:token",verifyEmail);
/**
* @swagger
* /api/auth/forgot-password:
* post:
* summary: Demande de réinitialisation du mot de passe
* tags:
* - Auth
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - email
* properties:
* email:
* type: string
* format: email
* example: jean.dupont@gmail.com
* responses:
* 200:
* description: Si un compte existe avec cet email, un lien de réinitialisation a été envoyé.
* 400:
* description: Email requis.
* 500:
* description: Erreur serveur.
*/
router.post("/forgot-password", forgotPassword);
/**
* @swagger
* /api/auth/reset-password/{token}:
* post:
* summary: Réinitialisation du mot de passe
* tags:
* - Auth
* parameters:
* - in: path
* name: token
* required: true
* schema:
* type: string
* description: Token de réinitialisation reçu par email
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - password
* properties:
* password:
* type: string
* format: password
* example: NouveauPassword123
* responses:
* 200:
* description: Mot de passe réinitialisé avec succès.
* 400:
* description: Lien invalide, expiré ou mot de passe invalide.
* 500:
* description: Erreur serveur.
*/
router.post("/reset-password/:token",resetPassword);
module.exports = router;