1.0.1 • Published 11 months ago

quanvnjwt v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

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 seconds
  • verify(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.
1.0.1

11 months ago

1.0.0

11 months ago