问题: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 过期),再进行授权。
电脑微信举纤誉登入小程序数字信封解密失败是回调中调用wx.login登录,会刷新登录态。。此时服务器使用code换取的sessionKey不是加密时使用的sessionKey,导致解正段密失败。解决方法是竖笑开发者提前进行login。或者在回调中先使用checkSession进行登录态检查,避免login刷新登录状态。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)