微信小程序授权解密失败问题

问题:wx.getUserInfo 解密用户信息出现概率性失败
正确顺序: wx.login() => wx.getUserInfo

1.首先我们来讨论下:wx.login()后执行了什么操作?
刷新登录状态,概率性生成新的 sessionKey(密钥) 和与其对应的 encryptedData(加密数据)

2.再有一点:sessionKey 是有时效性的,如果通过缓存拿取的话,需要先 wx.checkSession()进行检测是否过期

3.那我们就能发现:在先授权(先拿到encryptedData),再调用wx.login()的情况下:
(1).一旦生成了新的sessionKey,就会导致旧的encryptedData无法被解密
(2).即使sessionKey未刷新但是sessionKey过期也会导致无法解密

所以最终解决方案:进入授权页面即调用wx.login(),刷新登录状态(能避免 sessionKey 过期),再进行授权。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容