解决登录token的bug,移除refreshtoken

This commit is contained in:
2026-02-10 21:20:21 +08:00
parent 7aa428d932
commit 2248d51887
3 changed files with 7 additions and 69 deletions

View File

@@ -12,11 +12,6 @@ export default {
return await request.post('auth/logout')
},
},
refresh: {
post: async function () {
return await request.post('auth/refresh')
},
},
me: {
get: async function () {
return await request.get('auth/me')

View File

@@ -4,11 +4,10 @@ import { resetRouter } from '../../router'
import { customStorage } from '../persist'
import userRoutes from '@/config/routes'
export const useUserStore = defineStore(
export const useUserStore = defineStore(
'user',
() => {
const token = ref('')
const refreshToken = ref('')
const userInfo = ref(null)
const menu = ref([])
const permissions = ref([])
@@ -18,11 +17,6 @@ export const useUserStore = defineStore(
token.value = newToken
}
// 设置 refresh token
function setRefreshToken(newRefreshToken) {
refreshToken.value = newRefreshToken
}
// 设置用户信息
function setUserInfo(info) {
userInfo.value = info
@@ -79,7 +73,6 @@ export const useUserStore = defineStore(
// 登出
function logout() {
token.value = ''
refreshToken.value = ''
userInfo.value = null
menu.value = []
@@ -94,11 +87,9 @@ export const useUserStore = defineStore(
return {
token,
refreshToken,
userInfo,
menu,
setToken,
setRefreshToken,
setUserInfo,
setMenu,
getMenu,
@@ -112,7 +103,7 @@ export const useUserStore = defineStore(
persist: {
key: 'user-store',
storage: customStorage,
pick: ['token', 'refreshToken', 'userInfo', 'menu']
pick: ['token', 'userInfo', 'menu']
}
}
)

View File

@@ -9,11 +9,6 @@ const request = axios.create({
baseURL: config.API_URL,
});
// 是否正在刷新 token
let isRefreshing = false;
// 存储待重试的请求
let requests = [];
// 请求拦截器
request.interceptors.request.use(
(config) => {
@@ -62,45 +57,11 @@ request.interceptors.response.use(
// 401 未授权 - token 过期或无效
if (status === 401) {
// 如果正在刷新 token将请求加入队列
if (isRefreshing) {
return new Promise((resolve) => {
requests.push((token) => {
// 重新设置请求头
error.config.headers["Authorization"] =
`Bearer ${token}`;
resolve(http(error.config));
});
});
}
// 标记正在刷新
isRefreshing = true;
try {
// 尝试刷新 token
const newToken = await refreshToken();
// 刷新成功,更新 token
userStore.setToken(newToken);
// 执行队列中的所有请求
requests.forEach((callback) => callback(newToken));
requests = [];
// 重新执行当前请求
error.config.headers["Authorization"] = `Bearer ${newToken}`;
return request(error.config);
} catch (refreshError) {
// 刷新失败,清空队列并跳转登录页
requests = [];
userStore.logout();
router.push("/login");
message.error("登录已过期,请重新登录");
return Promise.reject(refreshError);
} finally {
isRefreshing = false;
}
// 直接登出并跳转到登录页
userStore.logout();
router.push("/login");
message.error("登录已过期,请重新登录");
return Promise.reject(error);
}
// 403 禁止访问
@@ -128,13 +89,4 @@ request.interceptors.response.use(
},
);
// 刷新 token 的方法
async function refreshToken() {
// 刷新接口需要携带当前token在请求头中
const response = await request.post('auth/refresh');
// 返回格式为 { code, data: { token } }
return response.data.token;
}
export default request;