@around25/jwt-utils

    1.0.1 • Public • Published

    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.

    Keywords

    Install

    npm i @around25/jwt-utils

    DownloadsWeekly Downloads

    53

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    8.1 kB

    Total Files

    8

    Last publish

    Collaborators

    • biancap
    • adrian.boros
    • gabicg
    • daniel.suciu.developer
    • cupsadarius
    • calintamas
    • cosminharangus