hs-password-validator
v1.0.2
Published
> A complete and comprehensive password validator
Maintainers
Readme
Password Validator
A complete and comprehensive password validator
Prerequisites
This project requires NodeJS (version 12 or later)
Install
npm i hs-password-validatorOr if you prefer using Yarn:
yarn add hs-password-validatorUsage
import PasswordValidator from 'hs-password-validator'
// Using only options
// Validate if a password has min length of characters
const validate = PasswordValidator({
password: 'myTestingPassword',
options: ['min']
})
console.log(validate)
/*
{
"hasInvalidFields": false,
"data": [
{
"validation": "min",
"arguments": 10,
"message": "Must contain at least 10 characters",
"satisfied": true
}
]
}
*/
// Validate if a password has at least one upper case character
const validateUppercase = PasswordValidator({
password: 'mypasswordhasnouppercase',
options: ['uppercase']
})
console.log(validateUppercase)
/*
{
"hasInvalidFields": true,
"data": [
{
"validation": "uppercase",
"message": "At least one uppercase letter",
"satisfied": false
}
]
}
*/Configuration
By default all options works without any extra configuration but you may want change some of them.
const validate = PasswordValidator({
password: 'ShortPassword',
options: ['min'],
config: { length: { minLength: 16 } }
})
console.log(validate)
/*
{
"hasInvalidFields": true,
"data": [
{
"validation": "min",
"arguments": 16,
"message": "Must contain at least 16 characters",
"satisfied": false
}
]
}
*/Language
This package supports multiple languages. You can change the language by setting the lang config.
By default this package use en-US, for now only english and pourtuguese br were supported, more in the future
const validate = PasswordValidator({
password: 'ShortPassword',
options: ['min'],
config: { length: { minLength: 16 }, lang: 'pt-BR' }
})
console.log(validate)
/*
{
"hasInvalidFields": true,
"data": [
{
"validation": "min",
"arguments": 16,
"message": "Deve conter no mínimo 16 caracteres",
"satisfied": false
}
]
}
*/Multiples options
You can combine multiple options to validate a password.
const validate = PasswordValidator({
password: 'MyPassword',
options: ['min', 'uppercase', 'lowercase', 'number', 'symbol'],
config: { length: { minLength: 8 } }
})
console.log(validate)
/*
{
"hasInvalidFields": true,
"data": [
{
"validation": "min",
"arguments": 8,
"message": "Must contain at least 8 characters",
"satisfied": true
},
{
"validation": "uppercase",
"message": "At least one uppercase letter",
"satisfied": true
},
{
"validation": "lowercase",
"message": "At least one lowercase letter",
"satisfied": true
},
{
"validation": "number",
"message": "Must contain numbers",
"satisfied": false
},
{
"validation": "symbol",
"message": "At least one special character",
"satisfied": false
}
]
}
*/Available options
| Option | Description | | ------ | :---: | | min | Minimun password length | | max | Maximun password length | | uppercase | At least one uppercase | | lowercase | At least one lowercase | | symbol | At least one symbol | | number | At least one number | | space | Does not allow spaces | | sequential | Does not allow sequential letters | | strength | Password strength |
Available configs
Length
| Option | Description | Default | | ------ | :---: | :---: | | minLength | Minimun password length | 10 | | maxLength | Maximun password length | 128 |
Score Config
| Option | Description | Default | | ------ | :---: | :---: | | minAcceptable | Minimun strength allowed | strong |
Language Config
| Option | Description | Default | | ------ | :---: | :---: | | lang | Set the messages language | en-US | Available: en-US, pt-BR
