路由守卫拦截符合条件的路由,不放行

最近做毕设遇到一个问题,我有两个界面,一个是注册,一个是注册成功,对应的路由为/register和/registerSuccess,怎么实现只能通过注册界面的按钮才能跳转到注册成功界面,直接输入/registerSuccess路由会拦截,路由守卫怎么实现。

首先,确保你已经安装了Vue Router并在你的项目中进行了配置。然后,在你的路由配置文件(通常是router.jsindex.js)中,添加一个全局前置守卫(Global Before Guard):

register

 axios.post("http://localhost:8080/user/register", formData).then((res) => {if (res.data.code == 200) {//成功逻辑localStorage.setItem('fromRegister','true')router.push("/registerSuccess")}if (res.data.code == 400) {//失败逻辑}}).catch((e) => {//捕获异常})
import Login from '../view/login/Login.vue'
import Register from '../view/register/Register.vue'
import RegisterSuccess from '../view/register/RegisterSuccess.vue'//route{path: '/login', component: Login, meta: {title: '欢迎登录'}},{path: '/register', component: Register, meta: {title: '欢迎注册'}},{path: '/registerSuccess', component: RegisterSuccess, meta: {title: '注册成功~', fromRegister: true}},//路由守卫router.beforeEach((to, from, next) => {//判断是否从register路由过来,如果是可以跳转if (to.matched.some(record => record.meta.fromRegister)) { // 检查目标路由是否需要验证// 在这里添加你的验证逻辑,例如检查是否已经注册// 如果验证通过,调用next()方法继续导航// 如果验证失败,可以重定向到其他页面或者显示错误信息if (localStorage.getItem('fromRegister')) {if (localStorage.getItem('fromRegister') == 'true') {next()localStorage.removeItem('fromRegister')}}next('/notFound') // 假设验证通过,允许导航} else {next() // 不需要验证,直接导航}//放行路由next()
})

在上面的代码中,我们为/registerSuccess路由添加了一个元数据requiresAuth,表示访问该路由需要进行验证。然后,我们定义了一个全局前置守卫,它会在每次导航之前执行。在守卫函数中,我们检查目标路由是否需要验证,如果需要验证,则执行相应的验证逻辑。在这个例子中,我们简单地假设验证通过,并允许导航。你可以根据你的实际需求修改验证逻辑。

这样,当用户尝试直接访问/registerSuccess路由时,由于没有通过验证,将会被拦截并阻止导航。只有通过注册界面的按钮跳转到注册成功界面时,才会通过验证并允许导航。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 之 Fastapi 框架学习

依赖安装 Fastapi 有版本要求,需要的 Python 版本至少是 Python 3.8(不要犟,按照版本要求来,我最先也是在我 Python3.6 上装的,果不其然跑不起来),幸好我 Win7 老古董能支持的 Python 最高版本…

《C++程序设计》阅读笔记【1-函数】

🌈个人主页:godspeed_lucip 🔥 系列专栏:《C程序设计》阅读笔记 本文对应的PDF源文件请关注微信公众号程序员刘同学,回复C程序设计获取下载链接。 1 函数1.1 概述1.2 函数定义、声明、原型1.3 变量1.3.1 全局变量1.3.…

内部类(来自类和对象的补充)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&a…

13.JavaWeb XML:构建结构化数据的重要工具

目录 导语: 一、XML概念 (1)可拓展 (2)功能-存储数据 (3)xml与html的区别 二、XML内容 三、XML用途 四、案例:使用XML构建在线书店的书籍数据库 结语: 导语&…

HTMLCSSJS

HTML基本结构 <html><head><title>标题</title></head><body>页面内容</body> </html> html是一棵DOM树, html是根标签, head和body是兄弟标签, body包括内容相关, head包含对内容的编写相关, title 与标题有关.类似html这种…

非写代码无以致远

标题党一下&#xff0c;本篇文章主要汇总了一些代码题&#xff0c;让大家写一些代码练习一下吧&#xff01; 变种水仙花_牛客题霸_牛客网 (nowcoder.com) #include<stdio.h> int main() {for (int i 10000; i < 99999; i) {int sum 0;for (int j 10; j < 1000…

Linux操作系统之防火墙

目录 一、防火墙 1、防火墙的类别 2、安装iptables(四表五链&#xff09; ​​​​​​​一、防火墙 1、防火墙的类别 安全产品 杀毒 针对病毒&#xff0c;特征篡改系统中文件杀毒软件针对处理病毒程序 防火墙 针对木马&#xff0c;特征系统窃密 防火墙针对处理木马 防火墙…

Python 一步一步教你用pyglet制作“彩色方块连连看”游戏(续)

“彩色方块连连看”游戏(续) 上期讲到相同的色块连接&#xff0c;链接见&#xff1a; Python 一步一步教你用pyglet制作“彩色方块连连看”游戏-CSDN博客 第八步 续上期&#xff0c;接下来要实现相邻方块的连线&#xff1a; 首先来进一步扩展 行列的类&#xff1a; class R…

VR版GPT可以在苹果Vision Pro上开发一个

特色:相比于基于文本的GPT,Noda的AI语音助手能够响应语音提示,在3D VR中创建思维导图。 1. 产品概述:一款空间计算生产力应用,集成了AIGC功能,旨在提升个人和团队的创意思维体验。 2. 产品功能: - AI辅助头脑风暴:通过智能建议和连接生成创新想法,利用AI进行利弊分析…

VC++建立空文档失败的一种情形

假设现在要在单文档程序的客户区创建控件; 把控件作为视类的成员变量; 先把成员变量定义加到视类头文件; 然后在视类的, BOOL CMyttView::PreCreateWindow(CREATESTRUCT& cs) {....... } 在此成员函数中创建控件; 运行程序,就会出现如下错误, 这就需要在类向导…

gpt4.0中文版

我愿把这个网站成为全球最强AI网站&#xff01;弄100多个AI伺候你&#xff1f;&#xff1f; 家人们&#xff0c;你们猜我发现了什么牛逼的AI网站&#xff1f;&#xff1f; 直接上图&#xff1a; 编辑 这个网站&#xff0c;聚合了国内外100多个顶尖的AI&#xff0c;包括了Op…

Spring Security 实现后台切换用户

Spring Security version 后端代码&#xff1a; /*** author Jerry* date 2024-03-28 17:47* spring security 切换账号*/RestController RequiredArgsConstructor RequestMapping("api/admin") public class AccountSwitchController {private final UserDetailsSe…

【JAVA】JAVA快速入门(长期维护)

下面是java的一些入门基础知识&#xff0c;有需要借鉴即可。 课程&#xff1a;B站黑马程序员&#xff0c;JAVA入门LINK 一、初识JAVA 1.java概述 概念&#xff1a;java是由sun公司研发&#xff0c;在2009年被oracle收购&#xff0c;祖师爷詹姆斯高斯林&#xff0c;是一种高级…

C++核心编程——4.2(2)对象的初始化和清理

4.2.5 深拷贝与浅拷贝 浅拷贝&#xff1a;编译器提供的简单的赋值拷贝操作 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝操作 示例&#xff1a; class Person { public://无参&#xff08;默认&#xff09;构造函数Person() {cout << "无参构造函数…

力扣热题100_链表_2_两数相加

文章目录 题目链接解题思路解题代码 题目链接 2. 两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 …

黑马鸿蒙笔记

目录 25-Stage模型-页面及组件生命周期 26-Stage模型-UIAbility的启动模式 25-Stage模型-页面及组件生命周期 26-Stage模型-UIAbility的启动模式 singleton 只会有一个实例 multiton 会有多个&#xff0c;但是会销毁旧的 standard 会有多个&#xff0c;但是不会销毁

两种C链表接口构造方式

记录下C语言中数据结构链表的2种方式&#xff0c;其中内核的表达方式可谓是经典。 一、数据和指针域混合 数据域和指针域定义在同一个结构体定义中&#xff0c;C语言中没有模板&#xff0c;意味着一个代码工程有多少数据结构就需要多少对链表的.c和.h&#xff0c;事实上这样会…

【MATLAB第102期】基于MATLAB的BRT增强回归树多输入单输出回归预测模型

【MATLAB第102期】基于MATLAB的BRT增强回归树多输入单输出回归预测模型 BRT&#xff0c;即Boosted Regression Trees&#xff08;增强回归树&#xff09;&#xff0c;是一种用于回归问题的集成学习方法。它结合了多个决策树模型&#xff0c;通过逐步改进的方式来提高整体模型的…

GDAL源码剖析(九)之GDAL体系架构

GDAL源码剖析&#xff08;九&#xff09;之GDAL体系架构_gdal 源码-CSDN博客 在GDAL库中包含栅格数据的读写&#xff0c;矢量数据的读写&#xff0c;以及栅格和矢量数据的相关算法。下面主要对GDAL中栅格数据和矢量数据的体系架构做一个简单的说明。本人英文很烂&#xff0c;有…

力扣经典150题第一题:合并两个有序数组

目录 合并两个有序数组问题详解与解决方法1. 介绍2. 问题描述3. 解题思路4. 算法实现5. 复杂度分析6. 测试和验证7. 扩展如何处理特殊情况和边界条件&#xff1f;如何处理数组中可能存在的重复元素&#xff1f;如何优化算法以减少内存使用或提高执行效率&#xff1f; 8. 总结9.…