QQ浏览器小程序登录适配指引

QQ浏览器登录流程整体参考微信的登录流程
下简称QQ浏览器为QB。

QB小程序与微信小程序登录不同点如下:

1、登录态与微信小程序不互通,即同一微信用户在QB小程序中的qbOpenId与微信小程序中的openId是不一样的。
2、QB小程序中目前没有unionId的概念。
3、QB小程序的wx.login()API存在调用失败的可能性(此时触发fail回调)开发者在适配时需要注意这一条件分支。
4、appId和appSecret均由QB分配,与微信分配的不同,目前可在调试页面中登录后查看。

具体流程:

  1. 小程序调用wx.login(),在success回调中获取到code。
  2. 将code传递给小程序后台。
  3. 小程序后台向QB后台发起请求https://miniprogram.html5.qq.com/code2session?appid=${APPID}&appsecret=${APPSECRET}&code=${CODE}。
    //正常返回的JSON数据包

     { 
         "qbopenid": QBOPENID,
         "session_key": SESSIONKEY
     }
    

    //错误时返回的JSON数据包

     {
         "errcode": ERRCODE,
         "errmsg": ERRMSG
     }
    
  4. 小程序后台通过qbopenId关联自定义登录态。

关于checkSession

在QB小程序中checkSession检查的是QB小程序的登录sessionKey是否过期,同样与微信小程序中的登录态是不同的。
到目前为止该sessionKey还没有具体作用: getUserInfo返回的内容中无敏感信息,QQ浏览器后台暂时也没有相应的校验接口; QB小程序没有unionId。