解决vue登录信息不及时更新问题

简介: 解决vue登录信息不及时更新问题


前言

现在是:2022年5月20日09:59:34

前面写过一篇文章,基于bladex框架实现的模拟登录,后来在测试的过程中发现了个问题,即A系统在跳转到本系统时,携带用户名和密码进行登录本系统是没有问题的;但是当A系统切换了别的用户,再跳转到本系统时,则本系统的用户信息还是上一个用户的信息,没有及时更新过来,本篇文章就是对这一问题的解决。

思路

出现这个问题的原因:

  1. 没有清空登录信息
  2. 没有重新登录

所以基于这两点出发,原来想的是在登录之前,先调用一下退出的方法,然后重新登录,后来同事说不用那么麻烦,直接在permission.js文件中做登录操作就行,于是,我就照做了。

整体思路是这样的:

  • 获取地址栏中参数
  • 解析拿到用户信息
  • 调用模拟登陆方法
  • 将需要用到的值放在sessionStorage
  • 重定向到首页(去掉地址栏中挂的参数)

实现代码

router.beforeEach((to, from, next) => {})中的代码如下:

//拿到地址栏中的参数
  //获取顶部链接
  let domain = getTopUrl();
  //查找有没有?,有的话是三方过来的用户,没有的话就是本系统的
  if(domain.indexOf("?")>0) {
    //获取参数
    let training = getQueryString("training");
    //去掉后面的#login
    if (training.indexOf("#/") > 0) {
      training = training.split("#/")[0];
    }
    var up = jiexicode(training);
    var username = up.split(",")[0];
    var password = '';
    if (up.indexOf("&memberid=") > 0) {
      //会员
      password = (up.split(",")[1]).split("&memberid=")[0];
      //将会员id放在本地
      sessionStorage.setItem("memberid", (up.split(",")[1]).split("&memberid=")[1]);
      sessionStorage.setItem("tag", 0);
    } else if (up.indexOf("&groupId=") > 0) {
      //团组
      password = (up.split(",")[1]).split("&groupId=")[0];
      //将团组id放在本地
      sessionStorage.setItem("groupId", (up.split(",")[1]).split("&groupId=")[1]);
      sessionStorage.setItem("tag", 1);
    }
    var loginForm = {
      username: username,
      password: password,
    };
    //异步进行登录
    store.dispatch("LoginPrammeSystem", loginForm).then(res => {
      console.log("进来了permission.js的登陆的方法", domain);
      location.href = location.origin;
    });
    return;
  }

注意事项

  1. return一定要加上
  2. 重定向地址栏中的链接时,一定要将参数去掉
  3. 以上两点只要有一点疏忽,则就会造成死循环!!!
相关文章
|
2天前
|
JavaScript
vue知识点
vue知识点
10 3
|
7天前
|
JavaScript
|
6天前
|
存储 缓存 JavaScript
vue代码优化方案
【7月更文挑战第13天】 **Vue.js 优化要点:** 分解大组件以提高复用性和加载速度;利用计算属性与侦听器优化数据处理;使用Object.freeze()减少响应式数据;借助Vuex或Composition API管理状态;实现虚拟滚动和无限加载提升长列表性能;路由懒加载减少初始加载时间;用Vue DevTools检测性能瓶颈;定期代码审查与重构;应用缓存策略;遵循最佳实践与团队规范,提升应用整体质量。
22 2
|
8天前
|
JavaScript 前端开发
【vue】 el-table解决分页不能筛选全部数据的问题
【vue】 el-table解决分页不能筛选全部数据的问题
23 4
|
8天前
|
JavaScript
【vue】 vue2 监听滚动条滚动事件
【vue】 vue2 监听滚动条滚动事件
16 1
|
8天前
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
22 6
|
8天前
|
JavaScript 定位技术
【天地图】vue 天地图 T is not defined
【天地图】vue 天地图 T is not defined
20 1
|
13天前
|
数据采集 JavaScript 前端开发
Vue框架的优缺点是什么
【7月更文挑战第5天】 Vue框架:组件化开发利于重用与扩展,响应式数据绑定简化状态管理;学习曲线平缓,生态系统丰富,集成便捷,且具性能优化手段。缺点包括社区规模相对小,类型支持不足(Vue 3.x改善),路由和状态管理需额外配置,SEO支持有限。随着发展,部分缺点正被克服。
23 1
|
14天前
|
JavaScript
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
|
8天前
|
JavaScript 前端开发
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
32 0