https://github.com/rrameshbtech/axios-token-refresher
Enables your axios client to attach a valid authorization token to each of your request.
https://github.com/rrameshbtech/axios-token-refresher
Last synced: about 1 month ago
JSON representation
Enables your axios client to attach a valid authorization token to each of your request.
- Host: GitHub
- URL: https://github.com/rrameshbtech/axios-token-refresher
- Owner: rrameshbtech
- License: mit
- Created: 2019-06-14T02:04:05.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T23:57:18.000Z (about 2 years ago)
- Last Synced: 2025-03-25T19:51:07.734Z (about 2 months ago)
- Language: TypeScript
- Homepage:
- Size: 282 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# axios-token-refresher
[](https://travis-ci.org/rrameshbtech/axios-token-refresher)
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 [email protected] for more sugestions.
## License
This library is licensed under MIT License