純 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"
          );
        });
      }

大功告成 , 親測有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章