多企业关联微信小程序的登录处理

单企业登录流程#

  1. 小程序端调用 wx.qy.login 获取微信返回的 code
  2. 小程序端调用后台登录接口,传入 code
  3. 后台根据企业 corpidsecret 获取 access_token, 并缓存下来,根据 expires_in 过期
  4. 后台根据前端传入的 codeaccess_token 调用 code2Session
  5. 拿到微信返回的 userid 后进行自己登录的处理

多企业登录流程#

错误处理方式#

拿相同的 code 循环 corpid 调用 code2Session, 哪个能获取到就中止循环。

实际效果#

用户企业不匹配的情况下这种处理方式会返回一个加密的 userid,导致循环第一次就退出了。

解决方案#

  1. code 和任意一个 corpid 调用 code2Session,判断返回的 corpid 是否与入参中的 corpid 相同,相同则登录成功,不同则返给小程序端,重新调用 wx.qy.login 获取 code
  2. 拿重新登录获取的 code 和第一次调用 code2Session 返回的 corpid 调用 code2Session

    代码片段#

小程序端处理

后端处理

微信官方文档#

微信官方文档

本作品采用《CC 协议》,转载必须注明作者和本文链接