收藏
回答

button getUserInfo逻辑问题

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug button 客户端 6.6.7 2.0.8

wx.login 会刷新session_key。在userinfo button回调内调用wx.login,开发者获取到session_key是刷新后的session_key,而userinfo是以刷新前session_key做加密的。所以会解密失败。


以上是你们官方的回复。


但是,为什么不能在userInfo回调里把code等 wx.login的数据传进去?

改都改了,改一半是什么意思。


如此一来,我们只好明文将用户数据传到后台了(button 获取到用户信息后,在回调中调用 wx.login 拿到 Code给后台)。


这是你们逼我们的。

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

2 个回答

  • 2018-06-02

    官方都说明了,登录跟获取用户信息,并不冲突。换个思路就可以解决了,比如在 app.launch 就去登陆

    2018-06-02
    有用
    回复 5
    • 小程序开发者
      小程序开发者
      2018-06-03

      那样如果用户5分钟之内没有使用 code,  那么就会失效

      2018-06-03
      回复
    • Pinellia
      Pinellia
      2018-06-04回复小程序开发者

      code不是在登录的时候用的?和获取用户信息没有什么关系吧,我实在app.js中使用的wx.login(),在后面页面用button调的用户信息

      2018-06-04
      回复
    • 女娲的小泥人
      女娲的小泥人
      2018-06-04

      主要的问题是,既然都能获取到用户信息了,第一步肯定是先登录。

      那么。为什么不能把openid 和 unionid 一起通过 button 传过来?

      难道真的没人觉得微信官方的这一波逻辑很奇怪吗?

      2018-06-04
      1
      回复
    • 小程序开发者
      小程序开发者
      2018-06-07回复Pinellia

      因为解码需要 session_key 看应用场景吧....

      因为我目前应用场景是必须授权才可以...如果先 login 还需要进行授权的时候在判断下 session_key 是否过期,  是否重新请求 login 比较麻烦....还得出2个接口...所以现在..点击的那一次..直接 先 login,  在重新  getUserInfo... 拿到信息一起传给后台...

      2018-06-07
      回复
    • 2018-06-08回复小程序开发者

      我们目前是写两个接口,授权跟登录状态校验,每次请求接口吧session_key 带上去。

      2018-06-08
      回复
  • Mr.蘇
    Mr.蘇
    2018-05-31

    建议首页就需要要登陆的按button获取用户信息,进入非首页的其他页面需要登陆获取信息的时候可以按原来的方式。

    2018-05-31
    有用
    回复 4
    • 女娲的小泥人
      女娲的小泥人
      2018-05-31

      这样做并不能解决官方脑残的逻辑设定。既然 button 里自动调用wx.login,为什么不能把login 之后的code 返回给开发者。

      2018-05-31
      1
      回复
    • 他想要的不多
      他想要的不多
      2018-06-01

      估计因为这个code已经被他们自己取userinfo用掉了,传给你也没用

      2018-06-01
      回复
    • 女娲的小泥人
      女娲的小泥人
      2018-06-03回复他想要的不多

      那至少……要把openid 和 unionid给我们啊。不太可能有人获取用户信息不保存到数据库的。

      2018-06-03
      1
      回复
    • 永强
      永强
      2018-08-10回复女娲的小泥人

      微信官方逻辑有问题,现在被玩的没一点脾气

      2018-08-10
      回复
登录 后发表内容