secure-auth-middleware
v1.0.2
Published
creating an authenticated middleware from json web tokens (JWT) and session based authentication more flexible and more efficient to use
Downloads
5
Maintainers
Readme
Secure Auth Middleware
Secure Auth Middleware is a Node.js middleware package designed to add authentication and authorization functionalities to your web applications. It provides a secure and flexible way to authenticate users using JSON Web Tokens (JWT) and protect routes from unauthorized access.
Installation
You can install Secure Auth Middleware via npm:
npm install secure-auth-middleware
Usage To use Secure Auth Middleware in your Node.js application, follow these steps: Import the middleware:
const authenticateToken = require('secure-auth-middleware');
Add the middleware to your routes:
const express = require('express');
const app = express();
app.get('/protected', authenticateToken, (req, res) => {
// Your protected route logic here
});
Configure JWT secret:
process.env.ACCESS_TOKEN_SECRET = 'your-secret-key';
Generate JWT tokens: You need to generate JWT tokens during the authentication process and include them in the request headers for protected routes. Here's an example of generating a token:
const jwt = require('jsonwebtoken');
// Generate a token
const token = jwt.sign({ username: 'example_user' }, process.env.ACCESS_TOKEN_SECRET);
Example usage: API authenticateToken(req, res, next) Middleware function to authenticate JWT tokens provided in the request headers.
req: The request object. res: The response object. next: The next middleware function. Returns:
If the token is valid, it attaches the decoded user information to req.user and calls next(). If the token is missing or invalid, it sends an appropriate HTTP status code (401 for Unauthorized or 403 for Forbidden) and does not call next().
const express = require('express');
const authenticateToken = require('secure-auth-middleware');
const app = express();
// Protect the '/protected' route with authentication middleware
app.get('/protected', authenticateToken, (req, res) => {
res.send('This is a protected route');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
License This project is licensed under the MIT License - see the LICENSE file for details.