1.2.7 • Published 1 year ago

axios-token-handler v1.2.7

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Axios Token 🛡

Bother with handling jwt web tokens in your React project? Wanna a "magick stick" which does everything by its own? So, you are in right package!

Please welcome to axios-token - fastest way to handle web tokens.

Here are all steps you need to do:

Step 1

Create an instance of Axios and pass it to axiosToken as shown down below:

import { axiosToken } from "axios-token-handler";

const axios = Axios.create({
  baseURL,
  timeout: 100000,
  withCredentials: true,
  headers: {
    "Content-type": "application/json"
  }
});

export const tokenHandler = axiosToken(axios, {
  accessTokenKey: "access_token",
  refreshTokenKey: "refresh_token",
  accessTokenExpiresInKey: "expires_in",
  refreshTokenUrl: "/auth/refresh",
  onExpired() {
    tokenHandler.clearToken();
    // Logout from project or redirect to login page
  }
});

Step 2

In your signin or signup implementations pass sucessfull payload to setToken() method:

// for example
 const { mutate, isLoading } = useMutation(AuthApi.loginUser, {
    onSuccess: tokens => tokenHandler.setToken(tokens);
  });

Let's suppose your server returns following payload during user signin or signup:

{
    "token_type": "Bearer",
    "access_token": "yourJWTAccessToken",
    "refresh_token": "yourJWTRefreshToken",
    "expires_in": 86400
}

All token information are saved to sessionStorage by default.


Fields explanation:
|Field name | Default values | Description | |---- | ----- | ----- | | accessTokenKey | accessToken | this field per our response example should be changed to access_token | | refreshTokenKey | refreshToken | this field per our response example should be changed to refresh_token | | accessTokenExpiresInKey | accessTokenExpiresIn | this field per our response example should be changed to expires_in | | refreshTokenurl | an empty string | this field requires refresh token url path implemented in server. If server url provided as axios baseUrl it is enough to add relative path like /auth/refresh. |


Methods explanation: |Method name | Parameters | Description | |---- | ----- | ----- | | getToken() | access_token | refresh_token | or no argument | If no argument has been passed it returns object payload saved in Storage. Otherwise, it returns string of provided key value. | | setToken() | payload from server | On Signin or Signup just pass an object of token information. Example response has been provided above. | | refreshToken() | no arguments | In case where new tokens are required, just call this method and all tokens would be refreshed. | | clearToken() | no arguments | Clears token information from Storage. |


Callback methods explanation: |Method name | Return values | Description | |---- | ----- | ----- | | onExpired() | error | This is for controlling next step in case when refresh token expires. Usually in this case better to clear storage and forward to login/home pages. | | ontError() | error | If during handling process somthing goes wrong, then an error would be thrown for further catch at your side. |

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.0

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.0.2

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago