收藏
回答

wx.checkSession有效,但是解密数据失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug checkSession 微信iOS客户端 所有 2

checksession成功后,获取用户信息传递到后端,解密却常常会失败,也就是说session_key过期了?

回答关注问题邀请回答
收藏

8 个回答

  • 逍遥哥
    逍遥哥
    2020-01-02

    好像理解你们说的了,就是checkSession没有过期的话,就用之前的code去换sessionKey,然后解密数据,现在我每次都用最新的code去操作,偶尔会失败,只要成功一次,基本后续反复都会成功了,还是不明白这之间的关系

    2020-01-02
    有用 2
    回复 1
    • Re
      Re
      2020-01-10
      用同样的代码,我这边测试还是会出现首次获取授权后,解码错误的问题,获取到的sessionkey 和 加密用户信息的sessionkey 无法保证是同一个
      2020-01-10
      回复
  • 大海
    大海
    2020-03-13

    老哥最后怎么解决的

    2020-03-13
    有用
    回复 1
    • 敬洪明
      敬洪明
      2020-03-13
      解用户信息、手机号失败后重新调用login
      2020-03-13
      回复
  • 张喜影
    张喜影
    2020-02-14

    请问,您解决了吗

    2020-02-14
    有用
    回复 1
    • 敬洪明
      敬洪明
      2020-02-24
      解用户信息、手机号失败后重新调用login
      2020-02-24
      回复
  • sj
    sj
    2020-01-22

    碰到同样的情况

    程序启动时wx.login,session_key取回放在服务器(设置一个有效期,超过有效期,重新wx.login)

    问题:一段时间后,wx.checkSession成功,但是解密手机号就出错了。

    2020-01-22
    有用
    回复
  • 石头~
    石头~
    2019-12-02

    你调接口获取session_key解密登陆的时候能保证他的唯一性吗?


    2019-12-02
    有用
    回复
  • 皓旭
    皓旭
    2019-11-21

    遇到楼主相同的问题,请问楼主现在如何解决规避这个问题?

    2019-11-21
    有用
    回复 3
    • 敬洪明
      敬洪明
      2019-11-21
      解析用户信息或者手机号失败就选择重新登录
      2019-11-21
      回复
    • 皓旭
      皓旭
      2019-11-21回复敬洪明
      现在问题是 调用wx.login成功拿到code之后,然后获取加密的用户信息,一起扔给服务端,服务端用code换取sessionKey解密用户信息偶现失败,不明白这是为什么。
      2019-11-21
      回复
    • 溺水的鱼👀
      溺水的鱼👀
      2019-12-26回复皓旭
      我就是你这样做的,间隔一段时间登录第一次会解密失败,解密需要的参数都能获取到,再次登录就可以解密,然后返回登录也可以,就是间隔一段时间会解密失败
      2019-12-26
      回复
  • Listen
    Listen
    2019-10-30

    2019-10-30
    有用
    回复 25
    • 敬洪明
      敬洪明
      2019-10-30
      我看这个了,但是这个不是很清晰,我描述的是已经提前调用了login的情况
      2019-10-30
      回复
    • Listen
      Listen
      2019-10-30回复敬洪明
      给你看下我是怎么处理的吧
      1. onLoad(组件 ready) 时就调用 wx.login  获取的jscode 放入全局变量 保证唯一
      2. getPhoneNumber 方法中 
      wx.checkSession
      success 正常代码
      fail  wx.login success后 正常代码
      2019-10-30
      1
      回复
    • 敬洪明
      敬洪明
      2019-10-30回复Listen
      现在是有bug,checksession成功,但是后端解密会失败
      2019-10-30
      回复
    • Listen
      Listen
      2019-10-30回复敬洪明
      解密失败就是session_key被替换了呗
      2019-10-30
      回复
    • 敬洪明
      敬洪明
      2019-10-30回复Listen
      是的,但是前端做了checksession的处理,所以现在不知道是不是微信端有啥bug引起session_key被替换了
      2019-10-30
      回复
    查看更多(20)
  • 敬洪明
    敬洪明
    2019-10-30

    官方文档中的描述不是很清晰,不知道我的理解对不:

    点击按钮获取手机号/用户信息,如果checksession失效了,那么是不是需要重新登录,然后用新的session_key去解析刚才获得的手机号信息。如果不checksession,直接调用login的话,得到session_key反而可能不匹配。

    2019-10-30
    有用
    回复 1
    • nil
      nil
      2020-05-28
      session_key 还有效的 情况下 调login 就会失败,因为 加密所用的 session_key 和 换取的 不一致
      2020-05-28
      回复
登录 后发表内容
问题标签