收藏
回答

小程序授权code失效问题

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug ios 所有 6.5.3

小程序,新用户第一次授权之后,获取用户信息请求没问题,但是,当用户同意授权之后,在重新获取用户信息授权会有一定的几率失败,找了原因是code的使用了两次失效,但是code,是直接通过接口直接获取然后直接请求,经过了很多次测试之后,发现如果是个全新的用户,登录授权是没有问题,如果是一个同意过授权的用户在登录就会有一定几率失败。。。



希望官方能帮我看看是什么问题,这个问题困扰的一段时间了

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

3 个回答

  • ...
    ...
    03-20

    微信里边已经说过了,首次用户授权,我们通过code获取openId,session_key等。这个时候我们要把获得的这些数据发送给后端做自定义登录态。之后每次用户进来我们用checkSession来检验用户的登录态是否过期,如果过期,那么再走wx.login()。https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.checkSession.html

    03-20
    有用
    回复
  • 小余
    小余
    2018-08-13

    感觉你的问题应该是session_key变了。


    wx.login()调用时,用户的session_key会被更新而致使旧session_key失效。开发者应该在明确需要重新登录时才调用wx.login(),及时通过登录凭证校验接口更新服务器存储的session_key。

    2018-08-13
    有用
    回复
  • 向扬
    向扬
    2018-08-13

    你是不是把授权的逻辑和授权逻辑绑定到一起了,你把获取用户信息的逻辑写在onload里应该就没问题了

    2018-08-13
    有用
    回复 5
    • Zhuang丶Zhiting
      Zhuang丶Zhiting
      2018-08-13

      我是这么操作的,当用户点击按钮的时候,获取用户信息,然后在同时调用wx.login,去获取code,再一起发送给后端,然后他那边有时就会返回-40008的错误,有时又不会

      2018-08-13
      回复
    • Summer
      Summer
      2018-10-31

      我也是碰到了同样的问题,我想请问你一下怎么解决的最后

      2018-10-31
      1
      回复
    • 樱桃🍒
      樱桃🍒
      04-23
      我也遇到过这个问题, 怎么解决啊?
      04-23
      回复
    • 
      06-12
      我也遇到了这个问题,但是我是多个小程序一起用一套代码
      06-12
      回复
    • xdh
      xdh
      10-12
      我这的原因是 在一定时间内 wx.login 获得的 code 不会变化,当你使用一次之后,再去使用时,就会报错,已经使用过,再使用的话,就会报错 非法code。坑爹的是,官方文档说code 有效期5分钟,但是5分钟之后 ,获取的code 仍然没变。而开发工具里面每次都是变化的。
      10-12
      回复
登录 后发表内容