axios-jwtoken-refresher
v1.0.14
Published
Axios interceptor to check JWT validity and generate new tokens if current access token expired!
Downloads
94
Maintainers
Readme
Axios Refresh Token
A simple and straightforward interceptor to check token validity and to generate new access and refresh token before the actual request in axios if the existing access token is already expired.
Installation
Run npm install axios-jwtoken-refresher
Usage
Add to your main project file.
import tokenRefresher from 'axios-jwtoken-refresher'
import axios from 'axios'
axios.create({
baseURL: 'https://api.example.com',
})
//Get where your initial refresh token persist.
const initialRefreshToken = '{provide initial refresh token}'
//Provide your refresh token endpoint.
const refreshTokenEndpoint = '/api/sample/token'
//Provide your own access token object result path.
const accessTokenResultPath = '/response/data/accessToken'
//Provide your own refresh token object result path.
const refreshTokenResultPath = '/response/data/refreshToken'
//Provide your own header options. (Optional)
const headerOptions = {
authPrefix: "Authorization",
bearerPrefix: "Bearer"
};
//To interecept and check token validity then request on refresh token endpoint if current access token is already expired!
tokenRefresher.interceptRequest(axios, {
initialRefreshToken: initialRefreshToken,
refreshTokenEndpoint: refreshTokenEndpoint,
accessTokenResultPath: accessTokenResultPath,
refreshTokenResultPath: refreshTokenResultPath,
headerOptions: headerOptions
});
//You can also access the get token method and set to axios instance manually. (Optional)
const tokens = tokenRefresher.getCurrentTokens();
axios.defaults.headers.common["Authorization"] = `Bearer ${tokens.accessToken}`;
//Just import axios-jwtoken-refresher once in your main or entry file.
//This will automatically intercept the request and check the token validity and if the token is already expired.
//It will request to the refresh token endpoint that you provide.
License
Copyright (c) 2021 Joever Monceda
Linkedin: Joever Monceda
Medium: Joever Monceda
Twitter @_EthanHunt07
Facebook: Joever M