美文网首页
小程序第一次登录失败,第二次成功问题(2)

小程序第一次登录失败,第二次成功问题(2)

作者: 每天进步一点点5454 | 来源:发表于2021-12-10 13:09 被阅读0次

    小程序登录第一次总是会失败,第二次肯定成功pad block corrupted

    <meta charset="utf-8">

    在开发微信小程序过程中,遇到一个登录的问题。就是微信小程序登录操作的时候,第一次总是会失败,返回pad block corrupted,然后再次登录的时候就会登录成功。出现这样的错误,百度原因大多数是说session_key过期,到期去解密手机号数据的时候,解密出错。具体分析:

    1、登录代码逻辑:

    img

    • 第一步是点击微信登录按钮获取微信手机号
    • 第二步是获取手机号加密数据成功后,请求微信的登录接口wx.login()获取code
    • 第三步是将code传到后台服务器去请求seesion_keyopenId
    • 第四步是后台通过session_keyopenId解密手机号加密字符串,并进行自我登录系统的登录操作;
    产生问题的原因:

    这里描述的问题是出现在第四步的步骤中,原因是第三步获取的session_key不正确,导致解密操作错误,返回pad block corrupted。但是导致session_key不正确的原因是第二步调用wx.login()方法,会刷新session_key。因为第一步获取的手机号加密数据是通过原来的session_key加密的,现在session_key刷新了,导致后台在第三步去获取seesion_key的时候,获取的是新的seesion_key,然后去解密的时候就报错了。

    解决思路:
    • 1.在调用获取手机号方法之前,调用login()方法,这样就能保证seesion_key是一致的。
    • 2.通过wx.checkSession方法判断当前seesion_key是否过期,如果过期了,就调wx.login方法。没有过期则直接跳过第二步、第三步,走第四步。

    作者:莪的世界木有如果
    链接:https://www.jianshu.com/p/f904e44a31f1
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:小程序第一次登录失败,第二次成功问题(2)

          本文链接:https://www.haomeiwen.com/subject/hqdcfrtx.html