需求: 当用户登录,或者已经登录状态下刷新和重进web端,除了普通的路由配置(login、UserInfo、home、404等),还需要用户的权限路由,需要根据用户信息拿到当前用户的权限路由,动态添加路由。
问题:

  • addRoutes()之后第一次访问被添加的路由会白屏,这是因为刚刚addRoutes()就立刻访问被添加的路由,然而此时addRoutes()没有执行结束,因而找不到刚刚被添加的路由导致白屏。因此需要从新访问一次路由才行
router.beforeEach( async (to, from, next) => {const token = sessionStorage.getItem('access_token')// 存在 token 说明已经登录if (token) {// 登录过就不能访问登录界面,需要中断这一次路由守卫,执行下一次路由守卫,并且下一次守卫的to是主页'if (to.path === '/login') {next({ path: '/' })}// 保存在store中路由不为空则放行 (如果执行了刷新操作,则 store 里的路由为空,此时需要重新添加路由)if (Routerobj已存在) {  //放行next()} else {//这里还需要保存Routerobj  防止重复进入这。await let Router =  getAsyncRouterobj()  //拿异步Routerobjrouter.addRoutes(Router)  //需要添加的路由// 如果 addRoutes 并未完成,路由守卫会一层一层的执行执行,直到 addRoutes 完成,找到对应的路由next({ ...to, replace: true })}} else {// 未登录时,注意 :在这里也许你的项目不只有 logon 不需要登录 ,register 等其他不需要登录的页面也需要处理if (to.path !== '/logon') {next({ path: '/logon' })} else {next()}}

登录状态 token相关推荐

  1. python vue token_Haytham个人博客开发日志 -- Flask+Vue基于token的登录状态与路由管理...

    指路牌 符合一下关键词,这篇博客有可能会对你有帮助 不使用工厂函数的Flask应用 不使用蓝本的Flask应用 Flask跨域配置 基于Token的登录状态管理 Flask+Vue Vue路由拦截 A ...

  2. uni 登录token方法_uni-app 中保持用户登录状态

    在应用中保持登录状态是一个应用常见的需求,本文简单介绍下在 uni-app 中如何保存用户登录状态. 简介 uni-app 中不支持读写 cookie,所以不能如传统的应用那样通过读取 cookie ...

  3. cookie、session、Token究竟区别在哪?如何进行身份认证,保持用户登录状态?

    HTTP是无状态的,也就是说你这次访问了服务器,关闭网页,再次访问服务器,服务器是没有意识到又是你来访问,那怎么保持登录状态呢? 设置让用户可以选择记住用户名和密码,但是把密码交给浏览器,如果电脑被黑 ...

  4. html登录状态验证,Token验证登录状态的简单实现

    设计思路 用户发出登录请求,带着用户名和密码到服务器经行验证,服务器验证成功就在后台生成一个token返回给客户端 客户端将token存储到cookie中,服务端将token存储到redis中,可以设 ...

  5. 登录状态保持(cookie+session和token)

    http设计之初,登录状态保持, 就是无状态的,这段时间业务逻辑也非常简单,随着互联网时代的来临,用户量的增加,每次登录却无法状态保持,先出现了cookie,但是cookie存储在客户端的浏览器上,并 ...

  6. H5页面获取原生APP的登录状态

    使用场景 安卓和IOS客户端在做一些节日.拉新等临时活动时需要内嵌一个HTML5页面(活动相关的逻辑都在该页面上),在开发HTML5页面的角度,则需要APP端提供用户的登录状态(包括token/用户I ...

  7. android读取网络配置文件,Android 中保存、读取设置配置数据、记录登录状态

    记录登录状态,我认为可以在用户登录成功后,与服务器约定一个 token 凭据,保存这个 token 凭据,而不是直接保存用户名.密码. 当然,保存 token 与保存设置数据是一样的,本文只讲解如何保 ...

  8. api可以主动采集用户数据吗_现在的前端框架全是通过API获得数据,如何记录用户登录状态?...

    很多答案都提到了 JWT.Session.Cookie,但是我发现常常有人混淆这三个概念.或者说不同的语境下大家对 Session 会有不同的理解. 首先这三个名词表示的是三个纬度的东西,不能简单地说 ...

  9. SAP Spartacus 在未登录状态下浏览器 local storage 里存储的数据

    url: http://localhost:4200/powertools-spa/en/USD/ 未登录状态下: 观察local storage存储的数据: auth: {token: {}, us ...

最新文章

  1. python导入py文件-Python导入其他文件中的.py文件 即模块
  2. java匿名类的用法
  3. postgres-#和postgres=#
  4. Angular self study 1 - Bootstrap
  5. (原创)RHEL/CentOS 5.x使用yum快速安装MySQL 5.5.x
  6. ASP.NET Core 源码学习之 Logging[2]:Configure
  7. linux延时与定时操作
  8. 谈谈你对oracle,对Oracle的优化
  9. Openstak(M版)控制节点安装
  10. 怎么往JFrame中添加图片
  11. 详解电脑蓝屏怎么回事
  12. webmagic之爬取数据存入HDFS
  13. lisp型材库_基于AutoLISP的AutoCAD标准零件库的开发研究
  14. python 连接pg数据库
  15. Java设计模式--单例模式(代码详解懒汉、饿汉模式)
  16. Google浏览器无法上网问题解决
  17. 【JZOJ 6080】【GDOI2019模拟2019.3.23】IOer
  18. 大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)
  19. 彩虹秒赞7.8源码破解版(去域名授权) 彩虹云任务系统无任何限制
  20. Java中级——private、default和protect详解

热门文章

  1. 修改apache 2.4.6的MPM模式
  2. UVA12439 February 29【日期计算】
  3. HRBUST1754 Minimum Scalar Product【序列处理】
  4. HDU2087 剪花布条【KMP】
  5. Bailian2742 Number of letters【入门】
  6. POJ3069 Saruman's Army【贪心】
  7. POJ1321 Bailian1321 棋盘问题【DFS】
  8. Python 标准库 —— cgi/html
  9. leetcode(83)—— 删除已排序链表重复元素(Remove Duplicates from Sorted List)
  10. scipy.special —— 排列、组合与阶乘