|
- /*
- * @Author: 赵伟
- * @Date: 2024-03-25 13:52:54
- * @Description:
- */
- import type { RequestConfig } from '@umijs/max';
- import { message } from 'antd';
- import { clearSessionToken, getAccessToken, getRefreshToken, getTokenExpireTime } from './access';
-
- const checkRegion = 5 * 60 * 1000;
-
- /**
- * Umi Max 网络请求配置
- * @doc https://umijs.org/docs/max/request#配置
- */
- export const requestConfig: RequestConfig = {
- errorConfig: {},
- requestInterceptors: [
- (url: any, options: { headers: any }) => {
- const headers = options.headers ? options.headers : [];
- const authHeader = headers['Authorization'];
- const isToken = headers['isToken'];
- if (!authHeader && isToken !== false) {
- const expireTime = getTokenExpireTime();
- if (expireTime) {
- const left = Number(expireTime) - new Date().getTime();
- const refreshToken = getRefreshToken();
- if (left < checkRegion && refreshToken) {
- if (left < 0) {
- clearSessionToken();
- }
- } else {
- const accessToken = getAccessToken();
- if (accessToken) {
- headers['Authorization'] = `Bearer ${accessToken}`;
- }
- }
- } else {
- clearSessionToken();
- }
- }
- return { url, options };
- },
- ],
- responseInterceptors: [
- (response: any) => {
- const { status, data } = response;
- // console.log('response', response);
- if (status >= 200 && status < 300 && data && (data instanceof Blob || data.code === 200)) {
- return response;
- } else {
- if (data && data.msg) {
- message.error(data.msg);
- } else {
- message.error('请求失败');
- }
- return Promise.reject(response);
- }
- },
- ],
- };
|