VueRouter
1、用户权限问题
-
可以在路由全局前置守卫判断当前vuex里是否有token
有token值证明刚才登录过, 无token值证明未登录
router.beforeEach((to, from, next) => {const token = store.state.tokenif (token) {// 如果有token, 证明已登录if (!store.state.userInfo.username) {// 有token但是没有用户信息, 才去请求用户信息保存到vuex里// 调用actions里方法请求数据store.dispatch('initUserInfo')// 下次切换页面vuex里有用户信息数据就不会重复请求用户信息}next() // 路由放行} else {next('/login')} }) -
在主页删除本地的vuex数据, 刷新页面让vuex取出来空的token, 但是发现递归了
-
原因: 因为强制跳转到登录页也会让路由守卫再次触发, 又判断无token, 再次跳转登录页, 就递归了
-
解决: 登录页面应该是无需判断token的, 还有注册页面, 所以设置白名单, 无token要去这2个页面直接放行
// 无需验证token的页面 const whiteList = ['/login', '/reg']router.beforeEach((to, from, next) => {const token = store.state.tokenif (token) {// 如果有token, 证明已登录if (!store.state.userInfo.username) {// 有token但是没有用户信息, 才去请求用户信息保存到vuex里// 调用actions里方法请求数据store.dispatch('initUserInfo')// 下次切换页面vuex里有用户信息数据就不会重复请求用户信息}next() // 路由放行} else {// 如果无token// 如果去的是白名单页面, 则放行if (whiteList.includes(to.path)) {next()} else {// 如果其他页面请强制拦截并跳转到登录页面next('/login')}} })
2、为什么我刷新首页不会走前置路由守卫
- 原因:当把路由守卫放在了
main.js中,页面已经渲染完了此时不会走路由守卫 - 解决办法:把main.js中的前置路由守卫放在
store/inde.js即可解决
相关文章:
VueRouter
1、用户权限问题 可以在路由全局前置守卫判断当前vuex里是否有token 有token值证明刚才登录过, 无token值证明未登录 router.beforeEach((to, from, next) > {const token store.state.tokenif (token) {// 如果有token, 证明已登录if (!store.state.userInfo.username) {/…...
什么是React.FC | 封装ant design弹框组件之:ant design 修改密码弹框组件
文章目录 一、什么是React.FC组件的 props 是什么意思二、封装ant design弹框组件之:ant design 修改密码弹框组件定义修改密码弹框组件使用修改密码弹框组件:[重要]关于提交时候,不同组件 表单数据共享报错:Button cannot be used as a JSX component.一、什么是React.FC …...
DHCP
一、DHCP 1.1 什么是dhcp DHCP动态主机配置协议,通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配IP地址,使网络环境中的主机动态的获得IP地址、DNS服务器地址等信息,并能够提升地址的使用率。 DHCP作为用应用层协…...
VS code的使用介绍
VS code的使用介绍 简介下载和安装常用的插件使用教程快捷键 集成Git未找到 Git。请安装 Git,或在 "git.path" 设置中配置。操作步骤打开文件夹初始化仓库文件版本控制状态提交文件到git打开git操作栏位 好用的插件ChineseDraw.io Integration实体关系 Gi…...
【蓝桥杯选拔赛真题57】python兔子分胡萝卜 第十四届青少年组蓝桥杯python 选拔赛比赛真题解析
目录 python兔子分胡萝卜 一、题目要求 1、编程实现 2、输入输出...
Spring MVC中JSON数据处理方式!!!
添加json依赖 <!--spring-json依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency> 注解 RequestBody:作…...
学习JavaEE的日子 阶段回顾
标识符 含义:给类、变量、方法、接口取名字的时候使用到的字符序列 组成:大小写字母 、数字、$、_、中文 注意事项: 不能以数字开头 区分大小写字母 不能使用除了$和_以外的特殊符号 不能使用Java的关键字 考虑到编码问题不要使用中文 关…...
深入理解 Flink(一)Flink 架构设计原理
大数据分布式计算引擎设计实现剖析 MapReduce MapReduce 执行引擎解析 MapReduce 的组件设计实现图 Spark 执行引擎解析 Spark 相比于 RM 的真正优势的地方在哪里:(Simple、Fast、Scalable、Unified) DAG 引擎中间计算结果可以进行内存持…...
Python pip 常用指令
前言 Python的pip是一个强大的包管理工具,它可以帮助我们安装、升级和管理Python的第三方库。以下是一些常用的pip指令。 1. 安装第三方库 使用pip安装Python库非常简单,只需要使用pip install命令,后面跟上库的名字即可。 # 安装virtuale…...
Eureka工作原理详解
摘要:本文将详细介绍Eureka的工作原理,包括服务注册、服务发现、心跳检测等关键概念。通过阅读本文,您将了解到Eureka如何实现高可用、可扩展的服务注册中心。 一、引言 在微服务架构中,服务注册与发现是一个重要的环节。为了实…...
开源加解密库之GmSSL
一、简介 GmSSL是由北京大学自主开发的国产商用密码开源库,实现了对国密算法、标准和安全通信协议的全面功能覆盖,支持包括移动端在内的主流操作系统和处理器,支持密码钥匙、密码卡等典型国产密码硬件,提供功能丰富的命令行工具及…...
小程序分销商城,打造高效线上购物体验
小程序商城系统,为您带来前所未有的在线购物体验。它不仅提供线上商城购物、在线下单、支付及配送等功能,还凭借其便捷性成为众多商家的首选。 想象一下,商家可以展示琳琅满目的商品,包括图片、文字描述、价格及库存等详尽信息。而…...
Selenium-java 定位元素时切换iFrame时的方法
具体方法如下图所示,如果iFrame中嵌套多层iFrame需要逐层定位到需要的那一层iFrame,完成操作后,执行该代码:driver.switchTo() .defaultContent() ; 是返回最顶部的frame...
WinForms中的UI卡死
WinForms中的UI卡死 WinForms中的UI卡死通常是由于长时间运行的操作阻塞了UI线程所导致的。在UI线程上执行的操作,例如数据访问、计算、文件读写等,如果耗时较长,会使得UI界面失去响应,甚至出现卡死的情况。 解决方法 为了避免…...
Zookeeper设计理念与源码剖析
Zookeeper 架构理解 整体架构 Follower server 可以直接处理读请求,但不能直接处理写请求。写请求只能转发给 leader server 进行处理。最终所有的写请求在 leader server 端串行执行。(因为分布式环境下永远无法精确地确认不同服务器不同事件发生的先后…...
EasyExcel快速导出 100W 数据
一. 简介 导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个导出,采用了分批查询数据来避免内存溢出和使用SXSSFWorkbook方式缓存数据到文件上以解决下载大文件EXCEL卡死页面的问题。 不过一是存…...
SpingBoot的项目实战--模拟电商【5.沙箱支付】
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 沙箱支付是什么 二.Sp…...
How to collect data
How to collect data 爬虫JavaPythonurllibrequestsBeautifulSoup 反爬虫信息校验型反爬虫动态渲染反爬虫文本混淆反爬虫特征识别反爬虫App反爬虫验证码 自动化测试工具SeleniumAppiumQMetry Automation StudioTestComplete RPA商业化产品艺赛旗影刀UIPath 开源产品Robot Frame…...
二刷Laravel 教程(用户注册)总结Ⅳ
一、显示用户信息 1)resource Route::resource(users, UsersController); 相当于下面这7个路由 我们先用 Artisan 命令查看目前应用的路由: php artisan route:list 2) compact 方法 //我们将用户对象 $user 通过 compact 方法转化为一个关联…...
Android自动化测试代理droidrun-agent:架构、原理与实战部署
1. 项目概述:一个面向Android应用的自动化测试代理在移动应用开发,尤其是Android生态中,自动化测试是保证应用质量、提升迭代效率的基石。无论是回归测试、兼容性测试还是性能压测,一套稳定、高效的自动化框架都至关重要。然而&am…...
当开源代码也成了「敏感物项」
前两天看到一条新闻:英国国民健康服务体系(NHS)下令关闭数百个 GitHub 仓库,全部设为私有,原因是安全担忧。 不是某个军用级的加密库,不是核设施控制系统的代码——只是一些普通的医疗数据处理工具。但因为…...
5000+明日方舟游戏素材库:解锁二次创作与游戏开发的完整资源解决方案
5000明日方舟游戏素材库:解锁二次创作与游戏开发的完整资源解决方案 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 您在二次创作时是否曾为素材不全而烦恼?开发…...
PromethAI-Backend:构建标准化AI智能体后端框架的工程实践
1. 项目概述与核心价值最近在折腾AI应用开发,特别是想搞一个能处理复杂工作流的智能体系统,发现了一个挺有意思的开源项目——PromethAI-Backend。这名字听着就有点“普罗米修斯”盗火种给人类的意思,挺形象的,它本质上就是一个为…...
告别窄带!用ADS仿真带你搞懂Doherty放大器带宽瓶颈与三种宽带方案
突破Doherty放大器带宽限制:ADS仿真实战与三大宽带方案解析 在射频功率放大器设计中,Doherty结构因其高效率特性成为5G基站和现代通信系统的核心组件。然而传统设计面临严峻的带宽挑战——当信号频率偏离中心频点时,效率可能骤降30%以上。本文…...
Silk-v3-decoder:打破即时通讯音频格式壁垒的专业解码方案
Silk-v3-decoder:打破即时通讯音频格式壁垒的专业解码方案 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...
如何在Linux上快速配置开源打印机驱动:foo2zjs完整实用指南
如何在Linux上快速配置开源打印机驱动:foo2zjs完整实用指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 在Linux系统中遇到打印机兼容性…...
基于RT-Thread与N32G457的三通道UART透明监控网关设计与实现
1. 项目概述与核心需求解析在嵌入式开发,特别是涉及工业控制、智能硬件或者多设备联调的现场,我们经常会遇到一个非常实际的痛点:如何在不干扰原有通信链路的前提下,实时监控两台设备之间的串口数据交互。无论是调试新的通信协议&…...
开源AI代码助手Codetie:本地部署、模型自选与实战调优指南
1. 项目概述:一个面向开发者的AI代码伴侣最近在GitHub上看到一个挺有意思的项目,叫codetie-ai/codetie。乍一看名字,可能以为是某个新的编程语言或者框架,但深入了解后,发现它的定位非常精准:一个开源的、本…...
Nginx Server Configs Node.js配置:Node应用部署最佳实践终极指南
Nginx Server Configs Node.js配置:Node应用部署最佳实践终极指南 【免费下载链接】server-configs-nginx Nginx HTTP server boilerplate configs 项目地址: https://gitcode.com/gh_mirrors/se/server-configs-nginx Node.js应用部署常常面临性能优化、安全…...
