reels
This commit is contained in:
34
utils/strongPasswordValidation.js
Normal file
34
utils/strongPasswordValidation.js
Normal file
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* این پسورد پایهی رمزنگاری E2EE هم هست (کلید با آن wrap میشود)، برای همین
|
||||
* قانون قویتری از پسورد معمولیِ ثبتنام/تغییر رمز (که فقط حرف+عدد میخواهد) دارد.
|
||||
*/
|
||||
const STRONG_PASSWORD_MIN_LENGTH = 8
|
||||
const STRONG_PASSWORD_MAX_LENGTH = 64
|
||||
const STRONG_PASSWORD_REGEX = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,64}$/
|
||||
|
||||
const validateStrongPassword = (password) => {
|
||||
if (!password || typeof password !== 'string') {
|
||||
return 'رمز عبور الزامی است'
|
||||
}
|
||||
|
||||
if (password.length < STRONG_PASSWORD_MIN_LENGTH) {
|
||||
return `رمز عبور باید حداقل ${STRONG_PASSWORD_MIN_LENGTH} کاراکتر باشد`
|
||||
}
|
||||
|
||||
if (password.length > STRONG_PASSWORD_MAX_LENGTH) {
|
||||
return `رمز عبور نمیتواند بیشتر از ${STRONG_PASSWORD_MAX_LENGTH} کاراکتر باشد`
|
||||
}
|
||||
|
||||
if (!STRONG_PASSWORD_REGEX.test(password)) {
|
||||
return 'رمز عبور باید شامل حروف بزرگ، حروف کوچک، عدد و یک کاراکتر خاص باشد'
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
STRONG_PASSWORD_REGEX,
|
||||
STRONG_PASSWORD_MIN_LENGTH,
|
||||
STRONG_PASSWORD_MAX_LENGTH,
|
||||
validateStrongPassword
|
||||
}
|
||||
Reference in New Issue
Block a user