#
luxiaotao1123
2024-04-15 0ef910aa436146bb4ac439694000aaa6b58c741b
#
4个文件已添加
1个文件已修改
90 ■■■■■ 已修改文件
.env 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/setting.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/token-util.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env
New file
@@ -0,0 +1 @@
COOL_API_BASE_URL = 'http://localhost:8080'
src/config/setting.js
New file
@@ -0,0 +1,7 @@
export const API_BASE_URL = import.meta.env.COOL_API_BASE_URL;
export const TOKEN_HEADER_NAME = 'Authorization';
export const UN_AUTH_CODE = 403;
src/utils/request.js
New file
@@ -0,0 +1,56 @@
import axios from 'axios';
import { API_BASE_URL, TOKEN_HEADER_NAME, UN_AUTH_CODE } from '@/config/setting';
import { getToken, setToken } from './token-util';
const service = axios.create({
    baseURL: API_BASE_URL
});
/**
 * pre
 */
service.interceptors.request.use(
    (config) => {
        const token = getToken();
        if (token && config.headers) {
            config.headers[TOKEN_HEADER_NAME] = token;
        }
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
);
/**
 * post
 */
service.interceptors.response.use(
    (res) => {
        if (res.data?.code === UN_AUTH_CODE) {
            // Modal.destroyAll();
            // Modal.info({
            //     title: 'Token has expired, please log in again!',
            //     okText: 'LOGIN',
            //     style: "top: 20px",
            //     onOk: () => {
            //         logout();
            //     }
            // });
            alert('Token has expired, please log in again!');
            // todo: logout
            return Promise.reject(new Error(res.data.message));
        } else {
            const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()];
            if (token) {
                setToken(token);
            }
            return res;
        }
    },
    (error) => {
        return Promise.reject(error);
    }
);
export default service;
src/utils/token-util.js
New file
@@ -0,0 +1,25 @@
import { TOKEN_HEADER_NAME } from '@/config/setting';
export const getToken = () => {
    const token = localStorage.getItem(TOKEN_HEADER_NAME);
    if (!token) {
        return sessionStorage.getItem(TOKEN_HEADER_NAME);
    }
    return token;
}
export const setToken = (token, remember) => {
    removeToken();
    if (token) {
        if (remember) {
            localStorage.setItem(TOKEN_HEADER_NAME, token);
        } else {
            sessionStorage.setItem(TOKEN_HEADER_NAME, token);
        }
    }
}
export const removeToken = () => {
    localStorage.removeItem(TOKEN_HEADER_NAME);
    sessionStorage.removeItem(TOKEN_HEADER_NAME);
}
vite.config.js
@@ -13,4 +13,5 @@
  server: {
    host: '0.0.0.0'
  },
  envPrefix: "COOL_",
})