Files
THE-TIP-TOP/backend/src/validations/password.validation.js
Emma781227 2201446ee6 changement
2026-09-14 22:30:40 +02:00

22 lines
903 B
JavaScript

const { z } = require("zod");
// Règle de mot de passe, reprise à l'identique par le front
// (frontend/src/utils/passwordRules.js) : plus de 7 caractères et au moins un
// caractère spécial, c'est-à-dire ni lettre (accentuée comprise), ni chiffre,
// ni espace.
const SPECIAL_CHARACTER = /[^\p{L}\p{N}\s]/u;
const passwordSchema = z
.string()
.min(8, "Le mot de passe doit contenir au moins 8 caractères")
.regex(SPECIAL_CHARACTER, "Le mot de passe doit contenir au moins un caractère spécial");
// Pour les contrôleurs qui valident à la main : message de la première règle
// non respectée, ou null si le mot de passe est valide.
function passwordRuleError(password) {
const result = passwordSchema.safeParse(password ?? "");
return result.success ? null : `${result.error.issues[0].message}.`;
}
module.exports = { passwordSchema, passwordRuleError, SPECIAL_CHARACTER };