Fix: remove login status when backend returns no login

master
linhaojun857 2 years ago
parent f3bee7fd69
commit f15c693ce2

@ -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')

@ -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)
})

Loading…
Cancel
Save