0.0.3 • Published 6 years ago

@abskmj/jwt-utility v0.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

JWT Utility for Node.js

This utility can be used to generate and parse JWTs (JSON Web Tokens).

Supported Algorithms

  • HS256
  • HS384
  • HS512

Utility Methods

MethodArgumentsDescription
getFactoryStringSet algorithm to be used to generate the JWT and returns an instance of Factory
getParserReturns an instance of Parser which can be used to parse and verify a JWT

Generating a Token

const JWTUtility = require('@abskmj/jwt-utility');

let jwt = JWTUtility.getFactory('HS256')
    .setIssuer('AuthServer')
    .setSubject('Login')
    .setExpiry(10)
    .setClaims({
        user: 'testUser',
        name: 'Test User'
    })
    .sign('secret key');

Factory Instance Methods

MethodArgumentsDescription
setIssuerStringSet iss claim value.
setSubjectStringSet sub claim value.
setAudienceStringSet aud claim value.
setExpiryNumberSet exp claim value, value will be current epoch time in seconds + seconds passed as argument.
setClaimsJSONSet the custom data that will be part of the JWT.
signStringGenerate the JWT using the secret key passed

Parsing a Token

const JWTUtility = require('@abskmj/jwt-utility');

let data = JWTUtility.getParser()
    .validateIssuer('AuthServer')
    .validateSubject('Login')
    .parse(jwt, 'secret key');

/*
data:
{ 
    headers: {
        alg: 'HS256',
        typ: 'JWT'
    },
    claims: {
        user: 'testUser',
        name: 'Test User',
        iat: 1512555172,
        iss: 'AuthServer',
        sub: 'Login',
        exp: 1512555182
    }
}

*/    

Parser Instance Methods

MethodArgumentsDescription
validateIssuerStringValidate iss claim value.
validateSubjectStringValidate sub claim value.
validateAudienceStringValidate aud claim value.
validateExpiryNumberValidate exp claim value, value validated against current epoch time in seconds + seconds passed as argument.
parseString, StringSet JWT token and key used to verify the token

Further Development

Support for RS256, RS384, RS512 is not planned yet. Please get in touch with the developer, if you wish to request any new functionality or bug fix.