无人机管理后台前端(已迁走)
linwe
2024-10-09 f9ba2d4f0cd34c79290adcb986e369b6eb771ec1
token 过期优化
2 files modified
18 ■■■■■ changed files
src/axios.js 9 ●●●●● patch | view | raw | blame | history
src/utils/auth.js 9 ●●●● patch | view | raw | blame | history
src/axios.js
@@ -37,6 +37,7 @@
// 全局未授权错误提示状态,只提示一次
let isErrorShown = false;
let _retry = false;
// 超时时间设置为10分钟,部分接口上传比较慢,如固件上传
axios.defaults.timeout = 600000;
//返回其他状态码
@@ -119,9 +120,9 @@
        //如果在白名单里则自行catch逻辑处理
        if (statusWhiteList.includes(status)) return Promise.reject(res);
        // 如果是401并且没有重试过,尝试刷新token
        if (status === 401 && !config._retry) {
        if (status === 401 && !_retry) {
            // 标记此请求已尝试刷新token
            config._retry = true;
            _retry = true;
            // 调用RefreshToken action来刷新token
            return store
                .dispatch('RefreshToken')
@@ -159,7 +160,7 @@
                });
        }
        // 如果是401并且已经重试过,直接跳转到登录页面
        if (status === 401 && config._retry) {
        if (status === 401 && _retry) {
            // 首次报错时提示
            if (!isErrorShown) {
                isErrorShown = true;
@@ -211,4 +212,4 @@
    }
);
export default axios;
export default axios;
src/utils/auth.js
@@ -6,7 +6,9 @@
const UserId = 'b-user-id';
export function getToken() {
    return Cookies.get(TokenKey);
    return Cookies.get(TokenKey, {
        path: '/'
    });
}
export function setToken(token) {
@@ -21,7 +23,10 @@
}
export function setRefreshToken(token) {
    return Cookies.set(RefreshTokenKey, token);
    return Cookies.set(RefreshTokenKey, token, {
        expires: 7,
        path: '/'
    });
}
export function removeToken() {