Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

auth-pass

Twinkle4913MIT1.0.0

auth-pass is a lightweight & powerful password validation package that ensures smooth, secure, and password updates. No more weak passwords, no more reuse—just pure security vibes!

password, authentication, auth-pass, security, password-validator, secure-login, password-check, strong-password, password-auth, nodejs-security, password-strength, password-policy, pass-checker, secure-auth, user-authentication, password-hashing, bcrypt, auth-toolkit, password-protection, auth-security, password-utility, password-manager, password-verify, password-rules, validate-password, authenticator, secure-access, login-security, node-auth, hashing, password-encryption, password-security

readme

🔒 auth-pass - Secure Password Validator

auth-pass is a lightweight password validation utility that ensures strong security for password updates. It prevents weak passwords, ensures password uniqueness, and enforces strong validation rules.

🚀 Features

  • Ensures strong password security (length, complexity, uniqueness)
  • Prevents reusing the old password
  • Checks for common & weak passwords
  • Validates password confirmation
  • Levenshtein Distance algorithm to prevent similar passwords
  • Simple and lightweight

📦 Installation

npm install auth-pass  

🔍 Usage

const validatePasswordUpdate = require("auth-pass");

const testCases = [  
  {
    description: "✅ Valid password update",  
    oldPassword: "OldPassword@123",  
    newPassword: "NewPassword@456",  
    confirmPassword: "NewPassword@456",  
  },  
  {
    description: "❌ Old password is empty",  
    oldPassword: "",  
    newPassword: "NewPassword@456",  
    confirmPassword: "NewPassword@456",  
  },  
  {
    description: "❌ New password is empty",  
    oldPassword: "OldPassword@123",  
    newPassword: "",  
    confirmPassword: "NewPassword@456",  
  },  
  {
    description: "❌ Confirm password is empty",  
    oldPassword: "OldPassword@123",  
    newPassword: "NewPassword@456",  
    confirmPassword: "",  
  },  
  {
    description: "❌ New password is same as old password",  
    oldPassword: "SamePassword@123",  
    newPassword: "SamePassword@123",  
    confirmPassword: "SamePassword@123",  
  },  
  {
    description: "❌ Confirm password does not match new password",  
    oldPassword: "OldPassword@123",  
    newPassword: "NewPassword@456",  
    confirmPassword: "WrongPassword@789",  
  },  
  {
    description: "❌ New password is too short (< 8 chars)",  
    oldPassword: "OldPassword@123",  
    newPassword: "Short1!",  
    confirmPassword: "Short1!",  
  },  
  {
    description: "❌ New password is too long (> 16 chars)",  
    oldPassword: "OldPassword@123",  
    newPassword: "VeryLongPassword@2024",  
    confirmPassword: "VeryLongPassword@2024",  
  },  
  {
    description: "❌ New password missing uppercase letter",  
    oldPassword: "OldPassword@123",  
    newPassword: "newpassword@123",  
    confirmPassword: "newpassword@123",  
  },  
  {
    description: "❌ New password missing lowercase letter",  
    oldPassword: "OldPassword@123",  
    newPassword: "NEWPASSWORD@123",  
    confirmPassword: "NEWPASSWORD@123",  
  },  
  {
    description: "❌ New password missing number",  
    oldPassword: "OldPassword@123",  
    newPassword: "NoNumber@Password",  
    confirmPassword: "NoNumber@Password",  
  },  
  {
    description: "❌ New password missing special character",  
    oldPassword: "OldPassword@123",  
    newPassword: "NoSpecial123",  
    confirmPassword: "NoSpecial123",  
  },  
];

testCases.forEach(({ description, oldPassword, newPassword, confirmPassword }) => {  
  const result = validatePasswordUpdate(oldPassword, newPassword, confirmPassword);  
  console.log(`${description}:`, result ? result : "✅ Passed!");  
});  

## 🧪 Validation Rules  
- **Old password is required**  
- **New password (8-16 chars, A-Z, a-z, 0-9, special char)**  
- **New password ≠ Old password**  
- **New password should not be too similar to the old password**  
- **New password should not be a common or weak password**  
- **Confirm password must match**  

## 🛠 Testing  
```sh  
npm test  

📜 License

MIT License

📌 GitHub Repo: https://github.com/Twinkle49/auth-pass.git