diff --git a/aurora-vue/aurora-blog/src/api/api.ts b/aurora-vue/aurora-blog/src/api/api.ts index ea39985..6242c94 100644 --- a/aurora-vue/aurora-blog/src/api/api.ts +++ b/aurora-vue/aurora-blog/src/api/api.ts @@ -1,44 +1,5 @@ import axios from 'axios' -import { app } from '@/main' -axios.interceptors.request.use((config: any) => { - config.headers['Authorization'] = 'Bearer ' + sessionStorage.getItem('token') - return config -}) - -axios.interceptors.response.use( - (response) => { - if (response.data.flag) { - return response - } - switch (response.data.code) { - case 50000: - app.config.globalProperties.$notify({ - title: 'Error', - message: '系统异常,请联系管理员', - type: 'error' - }) - break - case 40001: - app.config.globalProperties.$notify({ - title: 'Error', - message: '用户未登录', - type: 'error' - }) - break - default: - app.config.globalProperties.$notify({ - title: 'Error', - message: response.data.message, - type: 'error' - }) - } - return response - }, - (error) => { - return Promise.reject(error) - } -) export default { getTopAndFeaturedArticles: () => { return axios.get('/api/articles/topAndFeatured') diff --git a/aurora-vue/aurora-blog/src/main.ts b/aurora-vue/aurora-blog/src/main.ts index d32cd9f..ffab3fe 100644 --- a/aurora-vue/aurora-blog/src/main.ts +++ b/aurora-vue/aurora-blog/src/main.ts @@ -19,6 +19,8 @@ import infiniteScroll from 'vue3-infinite-scroll-better' import v3ImgPreview from 'v3-img-preview' import 'mavon-editor/dist/css/index.css' import api from './api/api' +import axios from 'axios' +import { useUserStore } from '@/stores/user' const pinia = createPinia() pinia.use(piniaPluginPersistedstate) @@ -33,6 +35,54 @@ export const app = createApp(App) loading: require('@/assets/default-cover.jpg'), error: require('@/assets/default-cover.jpg') }) +const userStore = useUserStore() +axios.interceptors.request.use((config: any) => { + config.headers['Authorization'] = 'Bearer ' + sessionStorage.getItem('token') + return config +}) +axios.interceptors.response.use( + (response) => { + if (response.data.flag) { + return response + } + switch (response.data.code) { + case 50000: { + app.config.globalProperties.$notify({ + title: 'Error', + message: '系统异常', + type: 'error' + }) + break + } + case 40001: { + app.config.globalProperties.$notify({ + title: 'Error', + message: '用户未登录', + type: 'error' + }) + if (userStore.userInfo !== '') { + userStore.userInfo = '' + userStore.token = '' + userStore.accessArticles = [] + sessionStorage.removeItem('token') + } + break + } + default: { + app.config.globalProperties.$notify({ + title: 'Error', + message: response.data.message, + type: 'error' + }) + break + } + } + return response + }, + (error) => { + return Promise.reject(error) + } +) components.forEach((component) => { app.component(component.name, component) })