什么是路由鉴权呢,分两个层面
1.如果我们还未登录的话,如果我们跳转其他路由,我们需要自动跳转到登陆页面,并且把跳转的目标路由通过query参数保留下来,点击登录之后,直接跳转过去即可
2.如果我们已经登录了,那么就不能再跳转到登录界面了,如果用户再跳转登录界面,就会自动跳转到首页
这里通过路由守卫来实现这样的效果
import router from './index'import { useUserStore } from '@/store/modules/user'//这里之所以要再次引入pinia,是因为在组件外部没办法直接获取pinia大仓库,需要手动获取
import pinia from '@/store'router.beforeEach((to: any, from: any, next: any) => {let token=useUserStore(pinia).token//用户已经登录if(token){if(to.path=='/login'){next({path:'/'})}else{next()}}else{if(to.path=='/login'){next()}else{next({path:'/login',query:{redirect:to.path}})}}
})router.afterEach((to: any, from: any) => {
})