main.js
755 Bytes
import { createApp } from 'vue'
import axios from 'axios'
import App from './App.vue'
import router from './router'
import { useAuth } from './composables/useAuth'
// 38 号文档 Phase 0:任意请求收到 401 → 本地登录态清掉、跳登录页。
// 覆盖「cookie 在中途过期」这类路由守卫放行之后才发生的情况,不止是页面切换那一刻。
axios.interceptors.response.use(
(res) => res,
(err) => {
if (err.response?.status === 401 && router.currentRoute.value.name !== 'Login') {
useAuth().clearAuth()
router.push({ name: 'Login', query: { redirect: router.currentRoute.value.fullPath } })
}
return Promise.reject(err)
}
)
const app = createApp(App)
app.use(router)
app.mount('#app')