axios-token-refresher
TypeScript icon, indicating that this package has built-in type declarations

2.0.5 • Public • Published

axios-token-refresher

Build Status

This library enables your axios client to append a valid authorization token to your requests.

How to use?

Install the package using NPM as given below.

npm i axios-token-refresher

Then add the below code into your application.

const wrapTokenRefresher = require('axios-token-refresher');

const formatTokenResponse = (response) => ({
  {
      accessToken: response.token,
      expiresIn: response.expiry_duration, // in seconds
      tokenType: response.token_type // "Bearer" | "Basic"
    }
});

/*
This function fetches the new authorization token & returns the Promise
This function will be called by refresher to get new token whenever the existing
token is expired.
*/
const fetchAuthToken = () => axios
  .get('www.auth-server.com/get/token/')
  .then(response => formatTokenResponse(response.data));

/*
Optional token configurations. details below.
*/
const options = {
  invalidTokenStatuses : [401, 403]
}

const axiosClientWithToken = wrapTokenRefresher(axios.create(), fetchAuthToken, options);

Now use axiosClientWithToken as like normal axios client which will take care of refreshing & attaching valid auth token with your requests.

Note: We can import types from axios-token-refresher/types like given below.

import { AuthToken } from "axios-token-refresher/types";

Options

Options can be passed as the third parameter for wrapTokenRefresher. It is optional.

const options = {

  // List of HTTP statuses which are sent by server when token is invalid.
  invalidTokenStatuses : [401], // default

  // Name of token header in which we send the fetched token.
  tokenHeaderName: 'authorization',  // default

  // `buildTokenHeader` allows to decide how the token header value should be built.
  buildTokenHeader: function(tokenDetails) {
    return `${tokenDetails.type} ${tokenDetails.value}`
  } // default
};

const axiosClientWithToken = wrapTokenRefresher(axios.create(), fetchAuthToken, options);

Contribute

We welcome to contribute by adding features, fixing bugs or by creating feature requests or submitting issues.

Please contact me at rrameshbtech@gmail.com for more sugestions.

License

This library is licensed under MIT License

Package Sidebar

Install

npm i axios-token-refresher

Weekly Downloads

0

Version

2.0.5

License

MIT

Unpacked Size

16 kB

Total Files

14

Last publish

Collaborators

  • rrameshbtech