1.0.0 β€’ Published 5 months ago

auth-pass v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

πŸ”’ 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  
```bash  
npm test  

πŸ“œ License

MIT License

πŸ“Œ GitHub Repo: https://github.com/Twinkle49/auth-pass.git