收藏
回答

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

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

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

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

6 个回答

  • 逍遥哥
    逍遥哥
    01-02

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

    01-02
    赞同 2
    回复 1
    • Re
      Re
      01-10
      用同样的代码,我这边测试还是会出现首次获取授权后,解码错误的问题,获取到的sessionkey 和 加密用户信息的sessionkey 无法保证是同一个
      01-10
      回复
  • sj
    sj
    星期三 18:22

    碰到同样的情况

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

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

    星期三 18: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
      回复
  • 11110111001011110111001110111
    11110111001011110111001110111
    2019-10-30

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

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

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

    2019-10-30
    赞同
    回复
登录 后发表内容
问题标签