auth-basic-vault
v1.1.6
Published
implementing Basic Authentication, handling user verification.
Readme
Auth-Basic-Vault
Auth-Basic-Vault is a secure and easy-to-use authentication module for Node.js applications. It provides basic authentication features combined with vault-like secure storage for user credentials and secrets, ensuring your application's sensitive data remains protected.
Features
- Basic authentication support
- Secure storage of user credentials and secrets
- Password hashing with bcrypt
- Role-based access control
- Middleware for Express.js integration
- Easy setup and configuration
- Extensible for custom authentication workflows
Installation
npm install auth-basic-vault
## Basic Example
const authVault = require('auth-basic-vault');
const auth = new authVault({
vaultPath: './vault.json', // Path to store encrypted secrets
secretKey: 'your-secure-secret-key', // Secret key for encryption
});
// Register a new user
auth.registerUser('username', 'password', ['admin'])
.then(() => console.log('User registered'))
.catch(console.error);
// Authenticate user
auth.authenticate('username', 'password')
.then(user => {
console.log('Authenticated user:', user);
})
.catch(err => {
console.error('Authentication failed:', err);
});
## Configuration
const auth = new authVault({
vaultPath: './vault.json', // Path for storing encrypted credentials
secretKey: 'your-secure-secret-key', // Secret key for encryption/decryption
enableLogging: true, // Optional: enable logging
});
### API
## Methods
registerUser(username, password, roles) — Register a new user with roles
authenticate(username, password) — Authenticate user credentials
getUser(username) — Retrieve user data
deleteUser(username) — Remove a user
updatePassword(username, newPassword) — Update user password
initialize() — Initialize the vault and load existing data
loginMiddleware() — Middleware for route authentication
verifyToken(token) — Verify JWT token if enabled
## Middleware
initialize() — Sets up the authentication environment
loginMiddleware() — Protect routes requiring authentication
## Security
Passwords are hashed using bcrypt
Secrets are encrypted and stored securely in the vault file
Use a strong secret key for encryption