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.