纯 js 实现系统间自动登录功能

一 . 此方法使用的前提条件

  1. 各系统间域名必须是相同的 .

    例如 http:// vue.deppontest.com:9000/#/ 自动登录到 http:// angular.deppontest.com:8080/#/

  2. 需要登录的系统是以 cookie 与后端校验登录

二 . 若满足以上条件可复制此代码使用

     // 查看是否登录过有cookie
      const tokeen = getCookie("Admin-Token");
      if (tokeen !== null) {
      // 如果有可直接自动登录
        window.open(
         `http://XXX.deppontest.com:XXXX/#/corelinappname=${
         this.param.appName
          }`,"_blank"
        );
      } else {
          // 若没有先获取cookie写入后自动登录
          // 需要登录系统的用户名 和 密码        
        let parmars = { username: " ", password: " " }; 
        const url = "http:// XXX .deppontest.com:XXXX/login/";
        this.$http.post(url, parmars).then(res => {
          let token = "若登录系统token固定可固定写死";
          if (res.data && res.data.token) {
            token = res.data.token;
          }
          // 修改cookie 填充token 可以访问以.deppontest.com 域名的网站
          document.cookie = `Admin-Token=${token};path=/;domain=.deppontest.com;expires=`;
          //链接到需要登录的系统
          window.open(
            `http://XXX.deppontest.com:XXXX/#/corelink?appname=${
              this.param.appName
            }`,"_blank"
          );
        });
      }

大功告成 , 亲测有效

你可能感兴趣的:(js,vue,react,js,vue,react)