评论

微信小程序关联企业微信的自建应用后,静默登录

微信小程序关联企业微信的自建应用后,实现企微打开小程序静默登录(读取到企微员工账号身份进行识别)

首先,通过wx.qy.login获取到code,然后把这个code发送给我们自己写的接口api.getCompanyId,去请求到企业微信的id


   wx.qy.login({
               success(res) {
                   console.log("企业微信登录");
                   console.log(res);
                   if (res.code && res.code != 6000) { // 通过this.setData方法,将上方data中的参数进行设置          this.setData(            {              code: res.code,            },            () => {              /**               * 通过下面这个接口去获取企业微信的id               */              api.getCompanyId(                {                  code: res.code,                },                (res) => {                  console.log("企业微信的公司id");                  console.log(res);                  /**                   * 企业微信的登录=====获取公司id成功后 调用企业微信登录接口                   */                  this.qyWxLogin(res);                }              );            }          );        }       //请求企微code失败      else if (res.code && res.code == 500) {          $Toast({            content: "登录失败,请重试!",          });          console.log("获取code失败!" + res.errMsg);        }      },    });

拿到code 和 企微的id后,可以通过自己写的方法去获取这个员工的信息了,把这些信息存到sessionStorage里


  qyWxLogin: function(companyId) {
          let self = this;
          $Toast({
              content: "正在登录...",
              type: "loading",
          }); /**     * 企业微信环境 获取code       之所以要再请求一次code,是因为这个code只有5分钟的时效,为了防止过期,所以再请求一次就行了     */
          wx.qy.login({
                      success(res) {
                          console.log(res);
                          if (res.code && res.code != 6000) {
                              self.setData({
                                          code: res.code,
                                      }, () => { //通过这个自己写的接口,传入code和企微id,去获取当前这个员工的信息              api.getUserInfo(                {                  code: res.code,                  companyId: companyId,                },                (res) => {                  console.log("接口返回的员工信息");                  console.log(res);                  setTimeout(() => {                    $Toast.hide();                  }, 100);                  if (res.access_token) {                    try {                      app.globalData.companyId = res.companyId;                      wx.setStorageSync("loginStatus", res.access_token);                    } catch (e) {}//可以跳转页面了                    wx.reLaunch({                      url: "../../pages/index/index",                    });                  } else {                    self.setData({                      visible: true,                      tips: "账号或密码错误!",                    });                  }                }              );            }          );        } else if (res.code && res.code == 500) {          $Toast({            content: "登录失败,请重试!",          });          console.log("获取code失败!" + res.errMsg);        }      },    });  },

这样就能在打开企微关联的自建应用的时候,自动静默登录程序了

注意:里面的一些接口是要自己实现的,用来从后端获取到信息,不要想着复制代码直接能用~这个只是方法逻辑的说明。

最后一次编辑于  03-24  
点赞 0
收藏
评论
登录 后发表内容