authenticate-user.js v1.0.1
authenticate-user.js
authenticate-user.js
is a lightweight Node.js module for user authentication and JSON Web Token (JWT) generation. It provides basic authentication functionality for your Node.js applications.
Installation
You can install authenticate-user.js
using npm:
npm install authenticate-user.js
Usage
To use authenticate-user.js
in your Node.js application, follow these steps:
Import the module into your application:
const createAuthPackage = require('authenticate-user.js');
Create an instance of
AuthPackage
by calling thecreateAuthPackage
function with your secret key and optional user storage:const secretKey = 'your_secret_key'; // Replace with a strong, secret key const userStorage = []; // You can provide your own user storage array or use an empty one const auth = createAuthPackage(secretKey, userStorage);
Register a new user:
const username = 'newUser'; const password = 'password123'; try { const user = auth.register(username, password); console.log('User registered:', user); } catch (error) { console.error('Registration failed:', error.message); }
Authenticate a user and generate a JWT token:
const username = 'existingUser'; const password = 'password123'; try { const token = auth.authenticate(username, password); console.log('Authentication successful. JWT token:', token); } catch (error) { console.error('Authentication failed:', error.message); }
Verify a JWT token:
const token = 'your_jwt_token_here'; const decoded = auth.verifyToken(token); if (decoded) { console.log('Token verified. User data:', decoded); } else { console.error('Token verification failed.'); }
Methods
register(username, password)
: Registers a new user with the provided username and password. Throws an error if the username already exists.authenticate(username, password)
: Authenticates a user with the provided username and password. Returns a JWT token upon successful authentication.verifyToken(token)
: Verifies a JWT token and returns the decoded user data. Returnsnull
if the token is invalid.hashPassword(password)
: Hashes a plain text password using bcrypt.comparePasswords(plainPassword, hashedPassword)
: Compares a plain text password with a hashed password.
Security
Please ensure that you use a strong and secure secret key for JWT token generation. In a production environment, consider integrating this module with a secure database for user management.