多企業關聯微信小程式的登入處理

田園百曉生發表於2020-01-09

單企業登入流程

  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 協議》,轉載必須註明作者和本文連結

相關文章