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', method: 'post',
data, 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 axios, { AxiosInstance, AxiosResponse } from 'axios'
import { RequestConfig, RequestInterceptors } from './types' import { RequestConfig, RequestInterceptors } from './types'
import { storage } from '@/utils' import { request, storage } from '@/utils'
import { constant } from '@/config' import { constant } from '@/config'
import { message } from 'antd'; import { message } from 'antd';
import { PostRefresh } from '@/api/Login';
class Request { class Request {
// axios实例 // axios实例
instance: AxiosInstance instance: AxiosInstance
@ -61,13 +62,22 @@ class Request {
}, },
(err: any) => { (err: any) => {
function toLogin() { 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') storage.removeItem('user')
location.href = location.origin + '/#/login' location.href = location.origin + '/#/login'
} }
}
// 根据自己业务/接口返回做相应调整 // 根据自己业务/接口返回做相应调整
if (err.response) { if (err.response) {
const { status } = err.response const { status } = err.response
message.error(err.message)
switch (status) { switch (status) {
case 401: case 401:
toLogin() toLogin()
@ -75,6 +85,9 @@ class Request {
case 403: case 403:
toLogin() toLogin()
break break
default:
message.error(err.message)
break;
} }
} else { } else {
message.error(err.message) message.error(err.message)