全局路由守卫实现登录验证

280 阅读1分钟

没权限就跳回登录页,有权限才放行 在src下创建permission.js

import router from '@/router'
import { getToken } from "@/composables/auth"
import { toast } from "@/composables/utils"
// 全局前置守卫

router.beforeEach((to,from,next) => {
    const token = getToken()

    // 没有登录,强制跳转回登录页
    if(!token && to.path != "/login"){
      toast("请您先登录","error")
      return next('/login')
    }
    // 防止用户重复登录 登陆后又进入登录页
    if(token && to.path == "/login"){
      toast("请勿重复登陆","error")
      return next({ path:from.path ? from.path : "/"})
    }
    // 最后一定要加入next() 放行 不然一直白屏
    next()
})

main.js中引入守卫

import "./permission"