vue路由守卫用于登录验证权限拦截

vue路由守卫用于登录验证权限拦截

  • to:进入到哪个路由去
  • from:从哪个路由离开
  • next:路由的控制参数,常用的有next(true)和next(false)

home需要判断是否有token存在才能访问home,

login和register页面不需要token,直接放行

在routes内加上meta属性标记

index.js

// 引入路由
import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'

// 使用路由插件
Vue.use(VueRouter)

const originalPush = VueRouter.prototype.push
   VueRouter.prototype.push = function push(location) {
   return originalPush.call(this, location).catch(err => err)
}

const routes = [
      {
        path: '/',
        name: 'login',
        meta:{
          auth:false
        },
        component: ()=>import('../views/Login/LoginView.vue')
      },
      {
        path: '/register',
        name: 'register',
        meta:{
          auth:false
        },
        component: ()=>import('../views/Register/RegisterView.vue')
      },
      {
        path: '/index',
        name: 'index',
        meta:{
          auth:true
        },
        component: ()=>import('../views/Index/Index.vue'),
        // redirect:'/manage',
        children:[
          {
            path: '/manage',
            name: '图书管理',
            meta:{
              auth:true
            },
            component:  ()=>import('../views/Manage/Manage.vue')
          },
        ]
      },
]

const router = new VueRouter({
  routes
});

router.beforeEach((to, from, next) => {
  const isLogin = window.localStorage.getItem('main'); //获取本地存储的登陆信息
  console.log(isLogin)
  console.log("to:"+to.name) //进入到哪个路由去
  console.log("from:"+from) //从哪个路由离开
  //next:路由的控制参数,常用的有next(true)和next(false)
  //next() 直接进to 所指路由
  //next('route') 跳转指定路由
  if (to.meta.auth) {//判断当前页面是否为拦截页面 如果是的话:
      if (isLogin) {  //判断是否登陆
        next();  //已登录,跳转首页
      } else {
        next({name:'login'});  //没登录,继续进入login页
      }
    }else{//如果不是要拦截页面,就放行。
      next();
    }

});

export default router

这个只能判断是否带了token,不能判断token是否有效,比如手动在浏览器伪造加token ,那么路由会认为通过 放行

所以还需要加上请求拦截器才可以。

Original: https://www.cnblogs.com/b10100912/p/16743509.html
Author: 学习钱厚端的小白
Title: vue路由守卫用于登录验证权限拦截

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616602/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Paxos 协议简单介绍

    一、简介 Paxos 协议是少数在工程实践中证实的强一致性、高可用的去中心化分布式协议。Google 的很多大型分布式系统都采用了 Paxos 算法来解决分布式一致性问题,如 Ch…

    Java 2023年6月7日
    093
  • java List去掉重复元素的几种方式

    List words= Arrays.asList("a","b","b","c","c&…

    Java 2023年6月7日
    071
  • Spring Boot下的一种导入Excel文件的代码框架

    1、前言 ​ Spring Boot下如果只是导入一个简单的Excel文件,是容易的。网上类似的文章不少,有的针对具体的实体类,代码可重用性不高;有的利用反射机制或自定义注解,开发…

    Java 2023年6月14日
    071
  • 领域驱动设计-CQRS

    CQRS 代表 命令查询职责分离。这是我第一次听到Greg Young描述的模式。其核心概念是,您可以使用与用于读取信息的模型不同的模型来更新信息。在某些情况下,这种分离可能很有价…

    Java 2023年6月15日
    077
  • iphone 开发学习笔记七

    本篇算是该系列最后一篇,虽不能说是很熟,但使用MonoTouch 开发的其本方法是掌握了,主要是完成当初的任务,实现地图开发包在iPhone上的实现。使用MonoTouch ,.N…

    Java 2023年5月29日
    050
  • 【Java面试手册-算法篇】给定一个整型数组,请判断是否为回文数组?

    对于一个给定的由正整数组成的数组 A[] ,如果将 A 倒序后数字的排列与 A 完全相同,则成数组A为回文数组。比如 [1, 2, 3, 2, 1] 是回文数组,而 [1, 2, …

    Java 2023年6月8日
    0103
  • MySQL日志系统bin log、redo log和undo log

    MySQL日志系统bin log、redo log和undo log 今人不见古时月,今月曾经照古人。 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息…

    Java 2023年6月5日
    079
  • 前端浅学之html

    浅学html 基础语法 标签 单标签 无属性 有属性 双标签 无属性 有属性 结构 表示当前是网页 头部信息 页面内容 举例 基础语法 好家伙 标题、水平线 语法 举例 嗯哼 搞笑…

    Java 2023年6月16日
    086
  • django 学习使用

    目录 1、创建虚拟环境 安装django 2、创建Django项目 3.运行项目 4、创建app,app表示一个功能模块 5、注册app 6、配置访问该app的访问路径 7、给创建…

    Java 2023年6月8日
    088
  • Java面试题(六)–Redis

    1 Redis基础篇 1、简单介绍一下Redis优点和缺点? 优点: 1、本质上是一个 Key-Value 类型的内存数据库,很像memcached 2、整个数据库统统加载在内存当…

    Java 2023年6月9日
    083
  • 好玩Python——PIL项目实训(四)——美白磨皮

    1 # 图像基础调整: 图像的亮度、对比度、色度,还可以用于增强图像的锐度,美白 2 # """ 3 4 from PIL import Image …

    Java 2023年6月6日
    077
  • Spring Cloud Finchley版-02-构建分布式应用

    服务消费者 & 提供者 本书使用服务提供者与服务消费者来描述微服务之间的调用关系。下表解释了服务提供者与服务消费者。 表-服务提供者与服务消费者 [td] 名词 定义 服务…

    Java 2023年5月30日
    061
  • 【SSM框架】Spring笔记 — 事务详解

    1、Spring的事务管理: 事务原本是数据库中的概念,在实际项目的开发中,进行事务的处理一般是在业务逻辑层, 即 Service 层。这样做是为了能够使用事务的特性来管理关联操作…

    Java 2023年6月8日
    087
  • 教学日志:javaSE-面向对象2

    一、局部变量和成员变量 package class4.oop1; /** * @Auther: Yu Panpan * @Date: 2021/12/10 – 12 – 10 – …

    Java 2023年6月5日
    089
  • 设计模式学习笔记(十八)备忘录模式及其实现

    备忘录模式(Memento Design Pattern),也叫快照(Snapshot)模式。指在不违背封装原则前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后…

    Java 2023年6月6日
    081
  • Spring Boot【快速入门】

    转自: https://www.cnblogs.com/wmyskxz/p/9010832.html Spring Boot 概述 Build Anything with Spri…

    Java 2023年5月30日
    056
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球