1.0.2 • Published 2 years ago

hs-password-validator v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Password Validator

A complete and comprehensive password validator

Prerequisites

This project requires NodeJS (version 12 or later)

Install

npm i hs-password-validator

Or if you prefer using Yarn:

yarn add hs-password-validator

Usage

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

OptionDescription
minMinimun password length
maxMaximun password length
uppercaseAt least one uppercase
lowercaseAt least one lowercase
symbolAt least one symbol
numberAt least one number
spaceDoes not allow spaces
sequentialDoes not allow sequential letters
strengthPassword strength

Available configs

Length

OptionDescriptionDefault
minLengthMinimun password length10
maxLengthMaximun password length128

Score Config

OptionDescriptionDefault
minAcceptableMinimun strength allowedstrong

Language Config

OptionDescriptionDefault
langSet the messages languageen-US

Available: en-US, pt-BR