npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

quanvnjwt

v1.0.1

Published

A simple yet effective JWT library write by quanvn

Readme

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.