UNPKG

auth-pass

Version:

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!

118 lines (108 loc) β€’ 3.83 kB
# πŸ”’ 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 ```sh npm install auth-pass ``` ## πŸ” Usage ```javascript 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](https://github.com/Twinkle49/auth-pass.git)