request修改
This commit is contained in:
1 parent
c2a765ebf7
commit
d2e7f4bf7a
2 files changed
+9
-17
No files matched your search
@@ -7,10 +7,10 @@ const showVerifyDeviceImpModel = (onClose: () => any = () => null) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (VerifyDeviceImpModelInstance) return
|
||||
|
||||
const close = () => {
|
||||
const close = async () => {
|
||||
render(null, document.body)
|
||||
VerifyDeviceImpModelInstance = false
|
||||
onClose()
|
||||
await onClose()
|
||||
}
|
||||
|
||||
const vnode = h(VerifyDeviceImpModel, {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user