技能学习:学习使用Node.js + Vue.js,开发前端全栈网站-12-4.登陆的前端vue-router路由验证(导航守卫)

简介: 上篇文章我们发现有些不使用任何接口的页面,在不登陆状态下是可以进行访问的,所以本篇文章解决一下这个问题。

上篇文章我们发现有些不使用任何接口的页面,在不登陆状态下是可以进行访问的,所以本篇文章解决一下这个问题。

1.使用导航守卫

导航守卫是在路由定义之后,进行使用之前进行的相关函数操作。类似中间件,可以说实际上他就是一个钩子函数的中间件。
在这里插入图片描述

// 导航守卫
router.beforeEach((to, from, next) => {
  // 打印to,查看内容
  console.log(to)
  // 将导航守卫看作一个中间件,不执行next()无法进入页面
  next()
})

在这里插入图片描述
进入新建广告位页面,查看打印结果,可以查询到新建广告位功能的路由信息
在这里插入图片描述
所以我们要做的就是在路由中添加信息,根据我们添加的信息进行判断是否可以进行登录。

2.添加路由元信息

查询官方文档中,meta作为路由元信息被我们查询。通过配置meta字段来抓取登陆验证节点。
在这里插入图片描述
官方文档中的方法是想要哪个页面需要被路由限制,就对哪个页面添加路由元信息。而我们的admin端除了登录页面,都需要被路由限制,所以在登陆页面添加isPublic,意为只有login页面是公众访问页面,其他均为需登录的管理员页面。
在这里插入图片描述
测试,分别在新建广告位页面和登陆页面打印信息:
(1)新建广告位页面,数据没有变化:
在这里插入图片描述
(2)登录页面,可以看到我们定义的isPublic:
在这里插入图片描述

3.设置路由守卫函数
// 导航守卫
router.beforeEach((to, from, next) => {
  // 如果没有定义的isPublic和token值,则跳转到登录页
  if(!to.meta.isPublic && !sessionStorage.token){
    return next('/login')
  }
  // 否则进入该页面
  // 将导航守卫看作一个中间件,不执行next()无法进入页面
  next()
})

测试,进入新建广告位页面,此时直接输入链接已进不去了。
先登录再使用sessionStorage.clear(),刷新页面再测试,直接跳转到登陆页面。
完成。

4.总结

到此,admin端基本内容已经完善,后续有新东西继续补充。
下篇文章我们开启web端编辑,更加深入了解vue的组件和UI。

相关文章
|
XML JavaScript 前端开发
JavaScript控制台:提升Web开发技能的秘密武器
作为Web开发人员,掌握JavaScript控制台中的各种方法至关重要。本文介绍了22种实用的console方法,从基本的log()到高级的profile()和memory,每种方法都配有示例和说明,帮助开发者更高效地调试和记录信息。通过了解这些工具,您可以优化代码、提高开发速度,减少错误,使编码过程更加顺畅愉快。
157 1
JavaScript控制台:提升Web开发技能的秘密武器
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
532 4
|
资源调度 JavaScript 前端开发
路由管理:Vue Router的使用和配置技巧
【10月更文挑战第21天】路由管理:Vue Router的使用和配置技巧
272 3
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
【10月更文挑战第12天】 vue 批量自动引入并注册组件或路由等等
|
JavaScript 前端开发 API
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
2053 0
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
623 1
|
JavaScript UED
"Vue实战技巧大揭秘:一招解决路由跳转页面不回顶部难题,让你的单页面应用用户体验飙升!"
【10月更文挑战第23天】在Vue单页面应用中,点击路由跳转时,默认情况下页面不会自动滚动到顶部,这可能影响用户体验。本文通过一个新闻网站的案例,介绍了如何使用Vue-router的全局前置守卫和`scrollBehavior`方法,实现路由跳转时页面自动滚动到顶部的功能,提升用户浏览体验。
462 0
|
JavaScript API
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
481 0
|
JavaScript
Node.js学习笔记----路由
Node.js学习笔记----路由
|
JavaScript
Node.js学习笔记(十一、路由)
Node.js学习笔记(十一、路由)
200 0
Node.js学习笔记(十一、路由)