微信小程序登录 返回 -41003

微信小程序登录解密失败

小程序登录的时候,通过客户端获取的code加密的信息,传给后端解密,可是后端解密返回 -41003 问题踩坑过程

复现流程:

  1. 用户点击授权按钮。通过 按钮绑定 getUserInfo 方法。获取用户的加密信息

  2. getUserInfo 方法中,调用 wx.login 获取最重要的 code 关于 code 的限时可以查看官方文档 获取微信登录 code

  3. 根据前面 2 步获取的code加密内容,一起传给后端进行解密(后端代码不做深入解释)具体可以查看文档 小程序登录


在这之前,上面的方法还是好使的,先等待异步方法回调,然后获取wx.login。这样能保证都能拿到 2 个值,可是今天解密失败了。而且很有规律性

第一次登录小程序 -> 返回 -41003
第二次(与第一次间隔5分钟内)重新在点击授权 -> 解密成功

  • 那么为什么是5分钟内?
    因为code的过期时间就是 5 分钟!

在看回上面的流程,我们是在获取用户信息后,才调用的wx.login.根据文档最新的描述.重新调用wx.login会刷新用户的登录状态。


解决方法:

  1. 在页面 onLoad 的时候调用wx.login。提前获取 code
  2. 通过授权按钮,获取加密信息
  3. 后续流程不变
  • 这样也还有一个隐藏的问题。因为 wx.login 获取的 code 也就5分钟有效期,万一用户打开了登录界面,5分钟都不登录呢?

那就。。那就。。。那就提示用户重新登录,然后重新调用wx.login 。等着用户重新点登录按钮把

你可能感兴趣的:(微信小程序)