Validators
Comprehensive guide to all available password validators.
Overview
Sentinel Password provides 7 built-in validators that can be mixed and matched to create your ideal password policy.
Available Validators
Length Validator
Controls minimum and maximum password length.
Configuration:
{
validators: {
length: {
min: 8, // Minimum length (default: 8)
max: 128 // Maximum length (default: 128)
}
}
}Error Codes:
PASSWORD_TOO_SHORT- Password is below minimum lengthPASSWORD_TOO_LONG- Password exceeds maximum length
Example:
validatePassword('short', { validators: { length: { min: 8 } } })
// { isValid: false, errors: [{ code: 'PASSWORD_TOO_SHORT', ... }] }Character Types Validator
Requires specific character types (uppercase, lowercase, numbers, symbols).
Configuration:
{
validators: {
characterTypes: {
requireUppercase: true, // Require at least one uppercase letter
requireLowercase: true, // Require at least one lowercase letter
requireNumbers: true, // Require at least one number
requireSymbols: true, // Require at least one symbol
minUppercase: 2, // Minimum uppercase letters
minLowercase: 2, // Minimum lowercase letters
minNumbers: 2, // Minimum numbers
minSymbols: 2 // Minimum symbols
}
}
}Error Codes:
MISSING_UPPERCASE- Missing required uppercase lettersMISSING_LOWERCASE- Missing required lowercase lettersMISSING_NUMBERS- Missing required numbersMISSING_SYMBOLS- Missing required symbols
Common Password Validator
Checks password against a list of 10,000+ commonly used passwords.
Configuration:
{
validators: {
commonPassword: {
enabled: true
}
}
}Error Codes:
COMMON_PASSWORD- Password is too common
Examples of common passwords:
password,123456,qwertywelcome,admin,letmein- Dictionary words like
monkey,dragon
Keyboard Pattern Validator
Detects keyboard patterns like qwerty, asdfgh.
Configuration:
{
validators: {
keyboardPattern: {
enabled: true,
maxConsecutive: 5 // Max consecutive keyboard chars (default: 5)
}
}
}Error Codes:
KEYBOARD_PATTERN- Contains keyboard pattern
Detected patterns:
qwerty,asdfgh,zxcvbn!@#$%,12345
Sequential Validator
Detects sequential characters like abc, 123, xyz.
Configuration:
{
validators: {
sequential: {
enabled: true,
maxConsecutive: 3 // Max consecutive sequential chars (default: 3)
}
}
}Error Codes:
SEQUENTIAL_CHARS- Contains sequential characters
Examples:
- Alphabetic:
abc,xyz,fed(reverse) - Numeric:
123,456,987(reverse)
Repetition Validator
Detects repeated characters like aaa, 111.
Configuration:
{
validators: {
repetition: {
enabled: true,
maxConsecutive: 2 // Max consecutive repeated chars (default: 2)
}
}
}Error Codes:
REPETITIVE_CHARS- Too many repeated characters
Examples:
aaaaaa- same character repeated111111- same number repeated
Personal Info Validator
Checks if password contains personal information.
Configuration:
{
validators: {
personalInfo: {
enabled: true,
fields: ['john.doe@example.com', 'John', 'Doe']
}
}
}Error Codes:
CONTAINS_PERSONAL_INFO- Password contains personal information
Use cases:
- Email addresses
- Names (first, last)
- Usernames
- Company names
Combining Validators
Mix and match validators for comprehensive validation:
const config = {
validators: {
length: { min: 12, max: 128 },
characterTypes: {
requireUppercase: true,
requireLowercase: true,
requireNumbers: true,
requireSymbols: true
},
commonPassword: { enabled: true },
keyboardPattern: { enabled: true },
sequential: { enabled: true },
repetition: { enabled: true },
personalInfo: {
enabled: true,
fields: ['user@example.com']
}
}
}