41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import {createApp} from 'vue'
|
||
import App from './App.vue'
|
||
import router from './router';
|
||
import ElementPlus from 'element-plus';
|
||
import 'element-plus/dist/index.css';
|
||
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
||
// import axiosInstance from '@/utils/axios-config';
|
||
import axios from 'axios';
|
||
import '@/assets/global.css'
|
||
|
||
|
||
|
||
const app = createApp(App)
|
||
|
||
// app.provide('axios', axiosInstance);
|
||
app.use(ElementPlus, { locale: zhCn });
|
||
app.use (router)
|
||
|
||
// 导航守卫,检查登录状态
|
||
router.beforeEach((to, from, next) => {
|
||
const token = localStorage.getItem('alertToken'); // 检查 token 是否存在,作为是否登录的依据
|
||
if (to.matched.some(record => record.meta.requiresAuth)) {
|
||
// 该路由需要认证
|
||
if (!token) {
|
||
// 如果没有 token,重定向到登录页面
|
||
next({
|
||
path: '/login',
|
||
query: { redirect: to.fullPath } // 将当前路径传递给登录页面,登录后可以重定向回来
|
||
});
|
||
} else {
|
||
// 已登录,继续访问
|
||
next();
|
||
}
|
||
} else {
|
||
// 不需要认证,继续访问
|
||
next();
|
||
}
|
||
});
|
||
|
||
app.mount('#app')
|