1.0.7 • Published 3 years ago

basic-axios-request v1.0.7

Weekly downloads
6
License
ISC
Repository
-
Last release
3 years ago

basic-axios-request

基于axios基础请求封装,主要功能:

+ accessToken 在时间范围内过期后自动更新请求,在请求刷新token返回前,其他请求在队列中挂起状态,刷新token返回后重新请求
+ 主动取消请求
+ Axios请求拦截、响应拦截

使用

在项目 src/utils 中 新建 Http 文件

import basicAxiosRequest from 'basic-axios-request';

export default basicAxiosRequest({
  axiosCreateConfig: {
    baseURL: '/api',
  },
  whitelist: ['/auth/refreshtoken'],
  getToken() {
    const { accessToken, refreshToken } = JSON.parse(window.localStorage.getItem('authData'));
    return { accessToken, refreshToken }
  },
  async updateAccessToken(request, oldRefreshToken) {
    const res = await request.post('/upms/auth/refreshtoken', {
      authorization: 'cG9ydGFs*****udDpidddd===',
      refresh_token: oldRefreshToken,
    });
    if (res?.code === 0) {
      // 获取新的数据后保存到本地。。。
      window.localStorage.setItem('authData', JSON.stringify({accessToken: res?.data.access_token, refreshToken: res?.data.refresh_token}))
      return res?.data.access_token
    }
  }
});

API

属性说明类型默认值
enabledDefaultLogic是否采用accessToken、refreshToken逻辑,默认为true,否则自行设置beforeRequestafterResponse处理booleantrue
getToken获取accessToken、refreshToken方法() => ({accessToken: string; refreshToken: string})enabledDefaultLogic为true时必填
updateAccessToken获取新的accessToken方法,返回accessToken,在accessToken还有5分钟,或者默认过期15分钟内会重新调用请求() => stringenabledDefaultLogic为true时必填
accessTokenExpiresaccessToken有过期时间,单位毫秒number-
axiosCreateConfigaxios.create 方法参数配置AxiosRequestConfig-
whitelist接口白名单,不需要带accessTokenstring[][]
beforeRequestaxios request 拦截函数,如果有返回值,则返回的,没有拦截返回默认的请求配置(config: AxiosRequestConfig) => AxiosRequestConfig|void-
afterResponseaxios response 拦截函数,如果有返回值,则返回的,没有拦截返回默认的请求配置(response: AxiosResponse) => any-
onResponseRejectresponse响应错误后处理(error: AxiosError) => any-
logoutaccessToken超过有效时长太久,需要退出登录处理等() => void-
accessTokenInvalidaccessToken失效时长多久范围内,允许重新请求更新,默认900秒(15分钟)number900
1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.4

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago