收藏
回答

调用wx.getImageInfo会影响到wx.request的Cookie

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug Android 7.0 小米 7.0.3

不是所有小程序都有这个问题。只有部分小程序的正式版会有这种故障,例如微谷小应用【gh_dfa832ec6287】就能通过该操作触发Bug,但这个小程序的开发版和体验版都不会触发这个Bug。触发过程如下:

1、wx.request 发起请求,通过js从 Set-Cookie 中获得 PHPSESSID=aaaaaa。(本步操作正常)
2、使用wx.getImageInfo加载图片信息,因为未带Cookie信息,此时小程序会获得一个 PHPSESSID=bbbbbbb的 Cookie。(出异常了)
3、后面使用wx.request,设置了PHPSESSID=aaaaaa后,服务器实际收到的PHPSESSID是:bbbbbbb, PHPSESSID=aaaaaa。

然后服务器认为收到了异常的PHPSESSID,会重新分配新的PHPSESSID,最终,服务器每次收到的PHPSESSID都不一样,成了:
cccccc, PHPSESSID=cccccc
dddddd, PHPSESSID=dddddd
eeeeee
, PHPSESSID=eeeeee
......

于是,本来已经正常登录了的小程序,因为绘制二维码时需要先 getImageInfo,导致登录状态出现了异常。


最后一次编辑于  2019-02-12
回答关注问题邀请回答
收藏

2 个回答

  • 峡谷训练师
    峡谷训练师
    2019-02-12

    跟 onShow 无关。onShow 里面没做登录。故障产生的原因是Cookie 异常。


    2019-02-12
    有用
    回复
  • 吴奕群
    吴奕群
    2019-02-12

    是不是你在app.js的onShow那边做了登录了,然后导致出问题

    2019-02-12
    有用
    回复 1
    • 峡谷训练师
      峡谷训练师
      2019-02-12

      app.js 的 onShow 全部内容如下:

          onShow(arg) {

              this.arg = arg;

              var userid = arg.query.userid;

              if (!userid) return;

              if (this.hasBindUser) return;

              this.hasBindUser = true;

              this.fromid = userid;

          }


      2019-02-12
      回复
登录 后发表内容