Skip to content

Perform JWT token operations (store, get, decode, get expiration date, check if expired, validate, remove)

License

Notifications You must be signed in to change notification settings

Around25/jwt-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jwt-utils

npm version npm downloads

A small package to perform JWT token operations (store, get, decode, get expiration date, check if expired, validate, remove from storage).

Installation

yarn add @around25/jwt-utils

Usage

Initialize the package and then import in wherever you need it. The constructor takes a single config object as parameter. The storageSystem property is required.

import TokenService from '@around25/jwt-utils'

const TokenUtils = new TokenService({
  storageSystem: window.localStorage
});

export default TokenUtils

In the React environment, it can be either window.localStorage or window.sessionStorage. And it's totally synchronous.

store(token)

Stores token using the specified storage system. Token must be a string.

// Take a properly formatted JWT token
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuYW1lIjoiSm9obiBEb2UiLCJleHAiOjE1MjU3MDAxNjE1NjJ9.qGB98H-4th9E0yTVHH235A4kCgFyKt5jIVgekk4fcp4'

TokenUtils.store(token);

get()

Retrieves the stored token if set, undefined otherwise.

const token = TokenUtils.get();

// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuY...

decode(token)

Decodes a token. A falsy token will return {}.

const decodedToken = TokenUtils.decode(token);

// {
//   id: 1,
//   name: "John Doe",
//   exp: 1525700161562
// }

getExpirationDate(token)

Returns expiration date as unix timestamp (ms) or null if the exp property is not defined in the decoded token.

const expirationDate = TokenUtils.getExpirationDate(token);

// 1525700161562

isExpired(token)

Returns a boolean value specifying if token is expired or not.

const isExpired = TokenUtils.isExpired(token);

isValid(token)

Checks if token is valid, simply by checking its existence. You can optionally use a validation function as a secondary param. In that case, the validation function should return a boolean value.

const isValid = TokenUtils.isValid(token, validationFunc);

remove(token)

Removes token from storage

TokenUtils.remove(token);

Usage with React Native

In the React Native environment, store, get and remove methods return promises (due to the async nature of the storage system).

import { AsyncStorage } from 'react-native'
import TokenService from 'jwt-utils'

export default new TokenService({
  storageSystem: AsyncStorage
});
const result = await TokenUtils.store(token);
// true

const token = await TokenUtils.get();
// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuY...

Dependencies

This package depends on jwt-decode for token decoding.

About

Perform JWT token operations (store, get, decode, get expiration date, check if expired, validate, remove)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published