小程序
小游戏
企业微信
微信支付
扫描小程序码分享
失败比较频繁。
现在还是在开发阶段,所以登陆的比较频繁,而且每次登陆都会经过下列步骤:
通过 button 去获取 iv , encryptedData
通过 wx.login 获取 code
将上述 3 个参数传给后台
后台通过 code2session 换取 session_key
使用 session_key iv 解析 encryptedData
有时会解析失败,有时会成功。
这是什么问题?
还是说我的登陆逻辑有问题?
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
wx.login 应该放在获取用户信息前面
因为wx.login 后可能导致 session_key与获取信息时的 session_key不一致
导致解密失败
wx.login 一般要检查session_key失效再使用的
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
也就是说,要先 checkSession 检查是否失效,失效了再 login ,无论失效与否均 getUserInfo ,这样下来吗?
最好是能提前获取session_key
难道getUserInfo之后, session_key失效, wx.login 获取到了新session_key.用新session_key解码旧encrptedDate出错???这个概率有点小.......
你的意思可能是getUserInfo的时候微信服务器不会去检查session_key失效,然后获取了一个旧session_key加密的encrptedDate 然后,wx.login的时候,微信服务器检查了一下session_key发现失效了,然后给了你一个新的session_key
调用wx.login 有几率导致session_key更新
所以建议 把session_key保存在数据库之类的
每次小程序打开小程序 的时候 或者要用的时候 检查下session_key是否失效 失效就更新。
getUserInfo时候 是新的session_key 可是你再wx.login 这个又有可能是最新的了 而这个最新的可能和新的 不一样
所以getUserInfo的session_key 可能是旧的了
问题解决了么~我也时好时坏。
请问 问题解决了吗 我这边解析
encryptedData
也是时好时坏
可以检查一下iv和encryptedData 的值传到后台后是不是正确的
正确无误的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
wx.login 应该放在获取用户信息前面
因为wx.login 后可能导致 session_key与获取信息时的 session_key不一致
导致解密失败
wx.login 一般要检查session_key失效再使用的
也就是说,要先 checkSession 检查是否失效,失效了再 login ,无论失效与否均 getUserInfo ,这样下来吗?
最好是能提前获取session_key
难道getUserInfo之后, session_key失效, wx.login 获取到了新session_key.用新session_key解码旧encrptedDate出错???这个概率有点小.......
你的意思可能是getUserInfo的时候微信服务器不会去检查session_key失效,然后获取了一个旧session_key加密的encrptedDate 然后,wx.login的时候,微信服务器检查了一下session_key发现失效了,然后给了你一个新的session_key
调用wx.login 有几率导致session_key更新
所以建议 把session_key保存在数据库之类的
每次小程序打开小程序 的时候 或者要用的时候 检查下session_key是否失效 失效就更新。
getUserInfo时候 是新的session_key 可是你再wx.login 这个又有可能是最新的了 而这个最新的可能和新的 不一样
所以getUserInfo的session_key 可能是旧的了
问题解决了么~我也时好时坏。
请问 问题解决了吗 我这边解析
encryptedData
也是时好时坏
可以检查一下iv和encryptedData 的值传到后台后是不是正确的
正确无误的。