Skip to main content

Usage

Basic Example

Generating Access and Refresh Tokens

import { generateTokens } from '@the-node-forge/jwt-utils';

const accessSecret = 'your-access-secret';
const refreshSecret = 'your-refresh-secret';

const { accessToken, refreshToken } = generateTokens(
{ id: 'user123', role: 'admin' },
accessSecret,
refreshSecret,
);
console.log('Access Token:', accessToken);
console.log('Refresh Token:', refreshToken);
const token = generateTokens({ id: 'user123', role: 'admin' });

console.log(token);

** Generate a Token (custom options)**

const { accessToken, refreshToken } = generateTokens(
{ id: 'user123', role: 'admin' },
accessSecret,
refreshSecret,
{
accessExpiresIn: '1h', // Custom access token expiry
refreshExpiresIn: '7d', // Custom refresh token expiry
algorithm: 'HS512', // Stronger algorithm
audience: 'my-app',
issuer: 'my-auth-service',
},
);

console.log('Access Token:', accessToken);
console.log('Refresh Token:', refreshToken);

Verifying a JWT

import { verifyToken, verifyRefreshToken } from '@the-node-forge/jwt-utils';

// no options
const decodedAccess = verifyToken(accessToken, accessSecret);
const decodedRefresh = verifyRefreshToken(refreshToken, refreshSecret);

// custom options
const decodedAccess = verifyToken(accessToken, accessSecret, {
audience: 'my-app',
issuer: 'auth-service',
});

const decodedRefresh = verifyRefreshToken(refreshToken, refreshSecret, {
audience: 'my-app',
issuer: 'auth-service',
});

console.log('Decoded Access Token:', decodedAccess);
console.log('Decoded Refresh Token:', decodedRefresh);

Verifying a Refresh Token

import { verifyRefreshToken } from '@the-node-forge/jwt-utils';

const refreshToken = 'your_refresh_jwt_token_here';
const refreshSecret = 'your-refresh-secret';

// no options
const decoded = verifyRefreshToken(refreshToken, refreshSecret);

// custom options
const decoded = verifyRefreshToken(refreshToken, refreshSecret, {
audience: 'my-app',
issuer: 'auth-service',
});

if (decoded) {
console.log('Refresh token is valid:', decoded);
} else {
console.log('Invalid or expired refresh token');
}

Configuration

JWT expiration can be configured in seconds, minutes, hours, or days:

{
"accessExpiresIn": "15m",
"refreshExpiresIn": "1d"
}

For detailed API usage, see the API Reference.