微信小程序手机授权报错: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

相关推荐
扯蛋4381 小时前
LangChain的学习之路( 一 )
前端·langchain·mcp
Mr.Jessy1 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
ConardLi2 小时前
Easy Dataset 已经突破 11.5K Star,这次又带来多项功能更新!
前端·javascript·后端
冴羽2 小时前
10 个被严重低估的 JS 特性,直接少写 500 行代码
前端·javascript·性能优化
rising start2 小时前
四、CSS选择器(续)和三大特性
前端·css
一 乐3 小时前
高校后勤报修系统|物业管理|基于SprinBoot+vue的高校后勤报修系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·毕设
爱喝水的小周3 小时前
《UniApp 页面配置文件pages.json》
前端·uni-app·json
mapbar_front3 小时前
React中useContext的基本使用和原理解析
前端·react.js
贪婪的君子3 小时前
【每日一面】实现一个深拷贝函数
前端·js
_安晓4 小时前
Rust 中精确大小迭代器(ExactSizeIterator)的深度解析与实践
java·前端·python