28 lines
833 B
TypeScript
28 lines
833 B
TypeScript
// middleware/auth.ts
|
|
|
|
/**
|
|
* 全局认证中间件
|
|
* 用于处理需要登录才能访问的路由
|
|
* 如果用户未登录,将显示登录框并重定向到模型广场
|
|
*
|
|
* @param to - 目标路由对象
|
|
* @returns void | NavigationResult - 如果需要重定向则返回导航结果
|
|
*/
|
|
export default defineNuxtRouteMiddleware((to) => {
|
|
const userStore = useUserStore()
|
|
const modalStore = useModalStore()
|
|
|
|
// 需要登录权限的路由列表
|
|
const authRoutes = [
|
|
'/high-availability',
|
|
// 可以继续添加其他需要登录的路由
|
|
]
|
|
|
|
// 如果是需要登录的路由,且用户未登录
|
|
if (authRoutes.includes(to.path) && !userStore.isLoggedIn) {
|
|
// 显示登录模态框
|
|
modalStore.showLoginModal()
|
|
// 重定向到模型广场页面
|
|
return navigateTo('/model-square')
|
|
}
|
|
}) |