Skip to content

Commit

Permalink
perf: 新增token过期示例
Browse files Browse the repository at this point in the history
  • Loading branch information
kailong321200875 committed Nov 17, 2023
1 parent a7ef722 commit bdc8d35
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 3 deletions.
11 changes: 11 additions & 0 deletions mock/request/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,16 @@ export default [
data: 'request-5'
}
}
},
{
url: '/request/expired',
method: 'get',
timeout: 0,
response: () => {
return {
code: 401,
message: 'token expired'
}
}
}
] as MockMethod[]
6 changes: 6 additions & 0 deletions src/api/request/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,9 @@ export const request5 = () => {
url: '/request/5'
})
}

export const expired = () => {
return request.get<IResponse<RequestResponse>>({
url: '/request/expired'
})
}
11 changes: 10 additions & 1 deletion src/config/axios/config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import router from '@/router'
import {
AxiosConfig,
AxiosResponse,
Expand All @@ -6,6 +7,9 @@ import {
} from './types'
import { ElMessage } from 'element-plus'
import qs from 'qs'
import { useStorage } from '@/hooks/web/useStorage'

const { clear } = useStorage()

const config: AxiosConfig = {
/**
Expand Down Expand Up @@ -66,7 +70,12 @@ const defaultResponseInterceptors = (response: AxiosResponse<any>) => {
} else if (response.data.code === config.code) {
return response.data
} else {
ElMessage.error((response as any).message)
ElMessage.error(response?.data?.message)
if (response?.data?.code === 401) {
// token过期
clear()
router.push('/login')
}
}
}

Expand Down
10 changes: 8 additions & 2 deletions src/views/Function/Request.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script lang="ts" setup>
import { ContentWrap } from '@/components/ContentWrap'
import { useI18n } from '@/hooks/web/useI18n'
import { ElButton } from 'element-plus'
import { request1, request2, request3, request4, request5 } from '@/api/request'
import { ElButton, ElDivider } from 'element-plus'
import { request1, request2, request3, request4, request5, expired } from '@/api/request'
import { ref } from 'vue'
import request from '@/config/axios'
Expand Down Expand Up @@ -151,6 +151,10 @@ const clickRequest5 = () => {
}
getRequest5()
}
const tokenExpired = () => {
expired()
}
</script>

<template>
Expand All @@ -163,5 +167,7 @@ const clickRequest5 = () => {
<ElButton type="primary" @click="clickRequest5">请求/取消request5</ElButton>
<ElButton type="primary" @click="getAll">发送五个请求</ElButton>
<ElButton type="primary" @click="cancelAll">关闭所有请求</ElButton>
<ElDivider />
<ElButton type="primary" @click="tokenExpired">token过期</ElButton>
</ContentWrap>
</template>

0 comments on commit bdc8d35

Please sign in to comment.