vue通过获取url中的信息登录页面

在主界面获取到url的信息 html

复制代码
<script>

  let getRequest = function () {
    var url = location.href
    // 从 URL 中提取查询参数部分
    const queryParamsString = url.split('?')[1];
    // 使用 URLSearchParams 解析查询参数
    const queryParams = new URLSearchParams(queryParamsString);
    // 获取特定参数的值
    const userName = queryParams.get('userName');
    const loginMode = queryParams.get('loginMode');
    localStorage.setItem("userName",userName)
    localStorage.setItem("loginMode",loginMode)
  }

  getRequest()
</script>

将存储到localStorage中的信息发生请求 vue

复制代码
  created() {
    this.loginInfo.userAcct = localStorage.getItem("userName") || "";
    this.loginInfo.loginMode = localStorage.getItem("loginMode") || "";
    if (this.loginInfo.userAcct !== "" && this.loginInfo.loginMode !== "") {
          // 直接在localstroage获取的信息 调用登录接口
        $login(this.loginInfo)
        .then((res) => {
          this.handleLoginInfo(res);
        })
        .catch((err) => {
          console.log(err);
        });
    }
    // this.getCode();
    // this.getSecretKey();
    // this.getRemInfo();
    this.enterEvent(); // 回车键登录
  },

    handleLoginInfo(res) {
      if (res.code === 200) {
        this.$message.success("登录成功!");
        //储存token,账号,密码
        this.$store.commit("set_token", res.data.token);
        this.$store.commit("set_userAcct", this.loginInfo.userAcct);
        this.$store.commit("set_password", this.loginInfo.password);
        this.$store.commit("set_tenantCode", this.loginInfo.tenantCode);
        this.$store.commit("set_userInfo", res.data.userInfo);
        let params = {
          userId: res.data.userInfo.sysUser.userId,
        };
        params = this.$qs.stringify(params);
        this.getMenuTreeSelect(res.data.userInfo.sysUser.userId);
        this.getDeptTreeSelect();
        //若用户选择记住密码
        if (this.isRemPwd) {
          this.$Cookie.set("userAcct", this.loginInfo.userAcct, {
            expires: 30,
          });
          this.$Cookie.set("tenantCode", this.loginInfo.tenantCode, {
            expires: 30,
          });
          //将密钥一起加密储存,后续解密时要用到
          this.$Cookie.set(
            "sk",
            CryptoJS.AES.encrypt(this.secretKey, "de43a68e4d184aa3"),
            {
              expires: 30, // 存储30天
            }
          );
          this.$Cookie.set(
            "thinglinkpwd",
            CryptoJS.AES.encrypt(this.loginInfo.password, this.secretKey),
            {
              expires: 30, // 存储30天
            }
          );
          // this.$router.go(0)
        } else {
          // 删除cookie
          this.$Cookie.remove("userAcct");
          this.$Cookie.remove("thinglinkpwd");
          this.$Cookie.remove("sk");
          this.$Cookie.remove("tenantCode");
        }
        // 去往首页
        this.$router.push("/index");
        //修改下首页默认的路径和菜单名称,确保一下侧边栏以及面包屑的正常展示,换首页了记得改下
        this.$store.commit("set_activeIndex", "/index");
        this.$store.commit("set_menuName", ["首页"]);
      }
    },
相关推荐
ZC跨境爬虫1 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦1 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
开发者每周简报1 小时前
网海三部曲·无名宗师传
javascript·人工智能
喵个咪1 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
qq_2518364572 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
摆烂大大王3 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangxingchao3 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
梦想的颜色3 小时前
TypeScript 完全指南(上):从零开始掌握类型系统
前端·typescript
之歆3 小时前
Day01_ES6+ 专业指南:从基础到实战的现代JavaScript开发(下)
前端·javascript·es6
lichenyang4534 小时前
鸿蒙 MVVM 实战:从 Demo 到工程化,聊聊登录、状态管理与埋点系统设计
前端