JWT_Authentication/validation.js
2025-05-02 11:27:57 +05:30

41 lines
1.2 KiB
JavaScript

// utils/validation.js
const Joi = require("joi");
const registerSchema = Joi.object({
username: Joi.string().min(3).max(30).required().messages({
"string.empty": "Username is required",
"string.min": "Username must be at least 3 characters long",
"string.max": "Username must be at most 30 characters long",
}),
email: Joi.string().email().required().messages({
"string.email": "Email must be a valid email",
"string.empty": "Email is required",
}),
// password: Joi.string().min(6).required().messages({
// "string.min": "Password must be at least 6 characters long",
// "string.empty": "Password is required",
// }),
password: Joi.string()
.pattern(
new RegExp(
"^(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])[A-Za-z0-9!@#$%^&*]{6,}$"
)
)
.required()
.messages({
"string.pattern.base":
"Password must be at least 6 characters long and include at least one uppercase letter, one number, and one special character",
"string.empty": "Password is required",
}),
});
const loginSchema = Joi.object({
email: Joi.string().email().required(),
password: Joi.string().required(),
});
module.exports = {
registerSchema,
loginSchema,
};