Package Exports
- @around25/jwt-utils
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@around25/jwt-utils) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
A small package to perform JWT token operations (store, get, decode, get expiration date, check if expired, validate, remove from storage).
Works in React
and React Native
.
Installation
npm install --save 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 '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
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
Decodes a token. A falsy token will return {}
.
const decodedToken = TokenUtils.decode(token);
// {
// id: 1,
// name: "John Doe",
// exp: 1525700161562
// }
Get expiration date
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
Check if expired
Returns a boolean
value specifying if token is expired or not.
const isExpired = TokenUtils.isExpired(token);
Check if valid
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 from storage
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...
External dependencies
This package depends on jwt-decode for token decoding.