khanya-auth
v1.0.0
Published
Simple authentication utility for Node.js with password hashing and JWT support
Maintainers
Readme
khanya-auth Enterprise
Secure, enterprise-grade authentication utility for Node.js with:
- Password hashing & verification
- JWT generation & refresh tokens
- Role-based access control
- Email & strong password validation
- Optional 2FA (TOTP) support
Features
- ✅ Password hashing (bcrypt)
- ✅ JWT generation & verification with refresh tokens
- ✅ Role-based access checks
- ✅ Email & password validation
- ✅ Optional 2FA (TOTP)
- ✅ Fully asynchronous and production-ready
Installation
npm
npm install khanya-auth
yarn
yarn add khanya-auth
pnpm
pnpm add khanya-auth
bun
bun add khanya-auth
Demo
import { Auth } from "khanya-auth";
const auth = new Auth({
jwtSecret: "supersecretkey",
refreshSecret: "refreshsecretkey",
jwtExpiry: "15m",
refreshExpiry: "7d",
enable2FA: true
});
(async () => {
// Password hashing & validation
const password = "StrongPass1";
console.log("Valid Password Format:", auth.validatePassword(password));
const hash = await auth.hashPassword(password);
console.log("Password Hash:", hash);
const valid = await auth.verifyPassword(password, hash);
console.log("Password Valid:", valid);
// JWT + Refresh token
const token = auth.generateToken({ userId: 1, role: "admin" });
console.log("JWT Token:", token);
const payload = auth.verifyToken(token);
console.log("Token Payload:", payload);
const refreshToken = auth.generateRefreshToken({ userId: 1, role: "admin" });
console.log("Refresh Token:", refreshToken);
console.log("Refresh Token Valid:", auth.verifyRefreshToken(refreshToken) !== null);
// Optional 2FA
const secret = auth.generate2FASecret("user1");
console.log("2FA Secret:", secret.base32);
const totp = auth.generateTOTP(secret.base32);
console.log("TOTP Code:", totp);
console.log("2FA Verified:", auth.verify2FA(totp, secret.base32));
})();
License
MIT License. See LICENSE file for details.
