微信小程序手机授权报错:pad block corrupted

微信小程序手机号授权登录,传参至后台解密,大概率都会成功,但是,偶尔会遇到解密失败,报错信息为: javax.crypto.BadPaddingException: pad block corrupted;在此记录一下解决方案。

更改前获取流程:

  • 通过getPhoneNumber获取了相应的加密数据
  • 然后再调用的wx.login获取code
  • 将wx.login获取的code以及 getPhoneNumber获取的数据传入后台解密进行后续操作

更改后获取流程:

  • 第一步要先调用的wx.login获取code
  • 再通过code取到用户的session_key (本次需求并未需要获取)
  • 然后再通过getPhoneNumber获取相应的加密数据
  • 最后再用session_key,手机号的加密数据和向量解密获取手机号

需要调换一下wx.login获取code的顺序。这是因为每次调用wx.login后通过code获取的session_key都是新的,所以请求getPhoneNumber之前先请求wx.login。

另也可以通过 wx.checkSession来检查 session_key 是否失效,如果没失效正常流程;如果失效后可再次通过wx.login获取code

相关推荐
01_ice10 小时前
前端学习css
前端·css·学习
愚公搬代码10 小时前
【愚公系列】《Web应用安全》010-Repeater模块的使用
前端·安全
Cache技术分享10 小时前
503. Java 反射 - 编写 ServiceFactory 类
前端·后端
赵大仁10 小时前
AI 限流 UX 设计:排队、降级、告知与用户预期管理
前端·ai·限流·用户体验·产品设计
__sjfzllv___10 小时前
在职前端Leader学习/转行 AI Agent -DAY37
前端
用户21816970493011 小时前
Flutter (二十二) GlobalKey
前端
用户21816970493011 小时前
Flutter (二十一) 下拉刷新,加载更多
前端
微擎应用12 小时前
小程序抽奖工具
小程序
IT_陈寒12 小时前
Python装饰器把我坑惨了,原来这样用才不掉链子
前端·人工智能·后端