1.0.1 • Published 11 months ago
quanvnjwt v1.0.1
QuanVN JWT
================
A Simple yet effective JWT library written by QuanVN.
Table of Contents
Description
Quanvn JWT is a super lightweight JSON Web Token (JWT) library for Node.js. It provides a simple and easy-to-use API for signing and verifying tokens.
Installation
To install QuanVN JWT, run the following command:
npm install quanvnjwt
Usage
Creating a new JWT instance
To create a new JWT instance, you need to provide a secret key:
const JWT = require('quanvnjwt');
const jwt = new JWT('your-secret-key');
Signing a token
To sign a token, you need to provide a payload object:
const token = jwt.sign({ id: 1, name: 'John Doe' }); // Note: default expired time is 1 hour (expiresIn: 3600)
Verifying a token
To verify a token, you need to provide the token string:
const result = jwt.verify(token);
if (result.status) {
console.log(result.data); // { id: 1, name: 'John Doe' }
} else {
console.log(result.message); // 'Token invalid'
}
Code Example
Here is an example of using Quanvn JWT to authenticate a user with simple express RESTapi:
const express = require('express');
const JWT = require('quanvnjwt');
const app = express();
const jwt = new JWT('<your-secret-key>');
app.post('/login', (req, res) => {
const { username, password } = req.body;
// Verify user credentials
if (username === 'john' && password === 'doe') {
const token = jwt.sign({ id: 1, name: 'John Doe' });
res.json({ token });
} else {
res.status(401).json({ message: 'Invalid credentials' });
}
});
app.get('/auth/me', (req, res) => {
const token = req.headers['authorization'][7]; // Remove 'Bearer ' prefix
const result = jwt.verify(token);
if (result.status) {
res.json({ message: 'Hello, ' + result.data.name });
} else {
res.status(401).json({ message: result.message }); // Or "Invalid token if you dont know what result.message returned
}
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
API Documentation
JWT
constructor(secret: string)
: Creates a new JWT instance with the given secret key.sign(payload: object, expired = 3600)
: Signs a token with the given payload object. Also expired in secondsverify(token: string)
: Verifies a token and returns a result object.
Result
status: boolean
: Whether the token is valid.message: string
: An error message if the token is invalid.data: object
: The payload object if the token is valid.