request修改

This commit is contained in:
weiwei committed 2025-05-20 10:55:41 +08:00
1 parent c2a765ebf7
commit d2e7f4bf7a
2 files changed
+9 -17

No files matched your search

+7 -15
View File
@@ -10,9 +10,8 @@ const TOKEN_KEY = constant.storageConstant.TOKEN
const USER_INFO_KEY = constant.storageConstant.USERINFO
const SKIP_AUTH_URLS = ["/thirdparty/thirdPartyOAth2", "/sys/auth/refresh-token", "/auth/oauth2/token"]
// 是否正在刷新token
let isRefreshing = false
// 定义一个队列,用于存储失败的请求
// 队列存储发送失败的请求
let failedQueue: any[] = []
// 存储刷新token的Promise
let refreshTokenPromise: Promise<any> | null = null
@@ -42,7 +41,7 @@ const getAuthHeader = (tokenStorage: any) => {
// 浙政钉登录 登录成功返回true,否则返回false
async function handleZzdLogin(): Promise<boolean> {
try {
uni.showLoading({ title: "加载中...", mask: true })
uni.showLoading({ title: "登录中...", mask: true })
const token = new URL(window.location.href).searchParams.get("uabaseToken")
if (!token) {
@@ -104,7 +103,7 @@ async function handleShLogin(): Promise<boolean> {
}
// 如果是设备未验证,保存响应数据
if (response.data === -1) {
if (response.data == -1) {
uni.setStorageSync(TOKEN_KEY, { data: -1 })
}
@@ -136,7 +135,7 @@ async function autoLogin(): Promise<boolean> {
}
}
// 统一的token刷新函数
// token刷新
async function refreshToken(): Promise<any> {
if (refreshTokenPromise) {
return refreshTokenPromise
@@ -154,7 +153,7 @@ async function refreshToken(): Promise<any> {
} else {
// 检查是否需要设备验证
const tokenStorage = uni.getStorageSync(TOKEN_KEY)
if (tokenStorage?.data === -1) {
if (tokenStorage?.data == -1) {
// 显示设备验证弹窗
await showVerifyDeviceImpModel(async () => {
// 验证完成后重新登录
@@ -221,8 +220,6 @@ const http = new Request({
// 请求拦截器
http.interceptors.request.use(async (config) => {
// console.log("config", config)
const tokenStorage = uni.getStorageSync(TOKEN_KEY)
const config_header: any = config.header || {}
@@ -243,7 +240,7 @@ http.interceptors.request.use(async (config) => {
if (authHeader) config_header.Authorization = authHeader
}
} else {
// token不存在,使用统一的刷新函数
// token不存在,刷新token
const newTokenStorage = await refreshToken()
if (newTokenStorage) {
const authHeader = getAuthHeader(newTokenStorage)
@@ -258,8 +255,6 @@ http.interceptors.request.use(async (config) => {
// 响应拦截器
http.interceptors.response.use(
async (response) => {
// console.log("response", response)
// 账号密码登录响应结果特殊处理
if (response.config.url === "/auth/oauth2/token") {
return Promise.resolve({
@@ -272,8 +267,6 @@ http.interceptors.response.use(
return Promise.resolve(response.data)
},
async (error) => {
// console.log("error", error)
// 处理 424 错误(token过期)
if (error.statusCode === 424) {
if (isDevEnv()) {
@@ -284,7 +277,6 @@ http.interceptors.response.use(
router.jump("/pages/test/login")
} else {
try {
// 使用统一的刷新函数
const newTokenStorage = await refreshToken()
if (newTokenStorage) {
// 重新发起失败的请求
@@ -294,7 +286,7 @@ http.interceptors.response.use(
return http.request(config)
}
} catch (err) {
// 错误已经在refreshToken中处理
// 错误已在refreshToken中处理
return Promise.reject(err)
}
}