token过期优化

This commit is contained in:
yj 2024-07-22 15:46:07 +08:00
parent 37daa40c5b
commit 881298cce9
2 changed files with 22 additions and 4 deletions

View File

@ -11,4 +11,9 @@ export const PostLogin = (data: any) =>
method: 'post',
data,
})
export const PostRefresh = (refreshToken: string) =>
request({
url: `auth/refresh?refreshToken=${refreshToken}`,
method: 'post',
})

View File

@ -1,8 +1,9 @@
import axios, { AxiosInstance, AxiosResponse } from 'axios'
import { RequestConfig, RequestInterceptors } from './types'
import { storage } from '@/utils'
import { request, storage } from '@/utils'
import { constant } from '@/config'
import { message } from 'antd';
import { PostRefresh } from '@/api/Login';
class Request {
// axios实例
instance: AxiosInstance
@ -61,13 +62,22 @@ class Request {
},
(err: any) => {
function toLogin() {
let user = JSON.parse(storage.getItem('user') as string);
if (user) {
PostRefresh(user.refresh_token).then(res => {
if (res.code == 200) {
storage.setItem('user', JSON.stringify(res.data))
location.reload()
}
})
} else {
storage.removeItem('user')
location.href = location.origin + '/#/login'
}
}
// 根据自己业务/接口返回做相应调整
if (err.response) {
const { status } = err.response
message.error(err.message)
switch (status) {
case 401:
toLogin()
@ -75,6 +85,9 @@ class Request {
case 403:
toLogin()
break
default:
message.error(err.message)
break;
}
} else {
message.error(err.message)