tencentyun / wafer2-client-sdk

Wafer client SDK
Other
225 stars 51 forks source link

使用qcloud.requestLogin接口以后重新登录的问题 #25

Closed yuzifu closed 6 years ago

yuzifu commented 6 years ago

最新版的wafer2-client-sdk因wx.getUserInfo接口的调整,增加了qcloud.requestLogin接口以适配其变化。在小程序中使用qcloud.requestLogin来登录业务后台,要求在页面使用open-type为getUserInfo的button来触发授权,那么问题来了:因为会话有时限的缘故,对于每一次发起的业务后台请求,在wx.checkSession返回fail时都需要再次访问qcloud.requestLogin接口以重新登录,这就意味着小程序需要中断业务逻辑,向用户呈现一个button来再次申请授权。

https://github.com/tencentyun/wafer2-startup/issues/127里,90arther提到官方的流程如下: `

  1. wx.login
  2. wx.getUserInfo(改用button形式)
  3. 用code换取session_key
  4. 用session_key\iv\encryptData解密 这个过程,每五到十分钟调用一次,能稳定复现解密失败的问题 `

用户初次进入小程序时,使用button来获取getUserInfo的授权不会给体验带来太多的负面影响,但如果在处理业务的过程中还需要用户触发button来重新登录的话,那就无法忍受了。

jas0ncn commented 6 years ago

更新了相关实现,可以参考:https://github.com/tencentyun/wafer2-quickstart/issues/10