1.2.0 โ€ข Published 6 months ago

authentication-facilitator v1.2.0

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

๐Ÿ”’ Authentication Facilitator

A simple and secure JWT authentication helper for Node/Express.js.

๐Ÿš€ Features

โœ… Token Generation โ€“ Create JWT access tokens
โœ… Token Authentication โ€“ Verify and decode JWT tokens
โœ… Middleware โ€“ Enforce JWT authentication in Express


๐Ÿ“ฆ Installation

npm install authentication-facilitator

๐Ÿš€ Usage

1๏ธโƒฃ Import the Module

const { buildToken, authenticateToken, resolveToken, enforceJWT } = require("authentication-facilitator");

2๏ธโƒฃ Generate a Token

const userPayload = { userId: 123 };
const secretKey = "your_secret_key";
const expiresIn = '1h'
const token = buildToken(userPayload, secretKey, expiresIn);
console.log(token);

3๏ธโƒฃ Verify & Decode a Token

const decoded = await authenticateToken(token, secretKey);
console.log(decoded); // { userId: 123, iat: ... , exp: ... }

4๏ธโƒฃ Extract Token from Request Headers

const sampleToken = 'token1234'
const tokenFromHeader = resolveToken(token);
console.log(tokenFromHeader);

5๏ธโƒฃ Use JWT Middleware in Express

const express = require("express");
const app = express();

app.use(enforceJWT("your_secret_key"));

app.get("/protected", (req, res) => {
  res.json({ message: "You have access!", user: req.user });
});

app.listen(3000, () => console.log("Server running on port 3000"));

๐Ÿ“œ API Reference

๐Ÿ”น buildToken(payload, secret, expiresIn = "1h")

  • payload (Object) โ€“ Data to include in the token
  • secret (String) โ€“ Secret key to sign the token
  • expiresIn (String) โ€“ Expiration time (default: "1h")
  • Returns: A JWT string

๐Ÿ”น authenticateToken(token, secret)

  • token (String) โ€“ The JWT token to verify
  • secret (String) โ€“ Secret key used for verification
  • Returns: Decoded payload or null if invalid

๐Ÿ”น resolveToken(token)

  • token (String) โ€“ Express request string
  • Returns: Extracted token from Authorization header

๐Ÿ”น enforceJWT(secret)

  • secret (String) โ€“ Secret key for verification
  • Returns: Express middleware to enforce authentication

๐Ÿงช Running Tests

npm test

๐ŸŒŸ License

MIT License

๐Ÿ“Œ Author: Ryan Charles Alcaraz (github)

1.2.0

6 months ago

1.1.0

6 months ago

1.0.0

6 months ago