单点登录逻辑

121 阅读1分钟

一、企业微信

  1. 配置一个中转页面,将中转页面对应的链接给后端,后端把链接配到企业微信中。
  2. 用户在企业微信中打开我们的应用的时候,会携带一个code跳到前端配好了的中转页面。
  3. 前端把url上的code的值截取下来,发给后端,后端再请求企业微信服务器,进行校验。
  4. 校验通过,后端返回用户的相关信息,我们再做对应的存储后,跳转到应用首页便可。
  //1. 获取code
  let url = window.location.href.split("?")[1];
  if (url && url.indexOf("code") > -1) {
  let code = url.split("=")[1];
  if (code.indexOf("#") !== -1) {
    code = code.substring(0, code.indexOf("#"));
  }
  //2. 携带code请求接口
  //3. 成功获取用户及应用相关信息,并存储
  //4. 跳转首页

二、其它第三方应用

还有一些第三方应用,比如需要指纹登录跳转的,比如需要先在第三方应用的登录页输入账号密码登录再跳转的。

其实他们的形式都差不多,主要逻辑是我们配置好的中转页拿到第三方应用提供的相关信息(比如用户的指定字段及值、比如手动登录第三方应用再跳转后获取到的code),将这些相关信息传给后端,后端再去请求第三方的服务器,做一个闭环的校验,校验通过就登录成功。