如何实现路由鉴权功能

发布时间:2024年01月18日

什么是路由鉴权呢,分两个层面

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) => {
})

文章来源:https://blog.csdn.net/weixin_59244784/article/details/135662508
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。