收藏
回答

getUserInfo能力改变

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

官方发通知说,wx.getUserInfo在4月30日后,在体验版和测试版中,将不能弹出授权提示框,且该功能会被移除.

  1. 我想知道 我用button type为getUserInfo验证组件,之后再用wx.getUserInfo获取用户信息可以吗?

  2. 为什么非要用wx.getUserInfo,因为我要在button按钮点击后,wx.login一下,获取code,之后获取sessionKey,之后去解密加密的用户信息获取Unionid,请官方回答一下1。

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

68 个回答

  • Can🌴
    Can🌴
    2018-04-26

    https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html


    login 跟getUserInfo 在交互上不需要耦合

    2018-04-26
    赞同
    回复
  • Can🌴
    Can🌴
    2018-04-24
    1. 用户点击 button->调用login 同时返回了私密信息



    用bindgetuserinfo 呀

    2018-04-24
    赞同
    回复
  • Can🌴
    Can🌴
    2018-04-24

    code 是login返回的,不是getUserInfo返回的呀

    2018-04-24
    赞同
    回复
  • Can🌴
    Can🌴
    2018-04-24

    wx.getUserInfo 返回的信息跟button返回的信息一样的。

    你这个就相当于调用两次 getUserInfo

    没看懂你需求

    2018-04-24
    赞同
    回复
  • 老杨
    老杨
    2018-05-03

     大部分 小程序 都是 公众号 或 APP 基础转换过来。对于跨平台开发  我们只希望方便的 获取 Unionid

    至于图像昵称  既然有了 open-data 真不重要。  为什么证明“你妈是你妈”  要出一大堆 吓人的 警告框呢?  50%的用户都是被 吓走的。 

    2018-05-03
    赞同
    回复
  • coder2017
    coder2017
    2018-05-02

    同求官方回复

    2018-05-02
    赞同
    回复
  • 陈龙
    陈龙
    2018-05-02

    所以,全局缓存一个sessionkey用于解密吧,也比较符合腾讯的设计初衷.

    2018-05-02
    赞同
    回复
  • 老杨
    老杨
    2018-05-01

     


    这个建议对 单个小程序来说 没问题 ,  但对多小程序 公众号与小程序得混合开发 会出问题。  openid 不能识别用户的唯一性。而login  官方并不是每次都给 uniID 。

    2018-05-01
    赞同
    回复
  • 彬彬
    彬彬
    2018-04-30

    @Jason Z. 

    并不是这种情况, wx.login的时候, 你的session_key其实在微信的服务器里已经生成了(但是刷新机制不明)


    第一种情况, 显示登录按钮的时候就执行一次wx.login, 这时候假定session_key为aaa, 那么你点按钮的时候所获取的加密数据就需要用aaa来解密, 而如果用户长时间未点击登录按钮,直到aaa过期了, 那么再点击按钮所获取的加密数据就不是用aaa来解密的了,


    第二种情况, 显示登录按钮的时候不执行wx.login, 点击按钮的代码里添加一个wx.login来获取一个code, 因为点击按钮时已经获取到数据了(这个数据其实是在wx.login之前生成的) 而你wx.login之后获取到用户信息加密数据之后执行的, 所以wx.login把微信服务器端的session_key刷新了, 这时候这个session_key不一定能解密出刚刚点击按钮获取的数据.


    而且之前的wx.getUserInfo本身有一个参数是验证登录状态的, 未登录状态不会返回加密数据, 而按钮的方式不知道是如何做的, 如果我从未执行过wx.login, 那么通过按钮能不能获取的到加密数据, 如果能, 那么这个加密数据是通过哪个session_key加密的(因为我没执行过wx.login, 按道理也就是说从来没生成过session_key)

    2018-04-30
    赞同
    回复
  • Jason Z.
    Jason Z.
    2018-04-28

    @彬彬 "如果你上次拿wx.login是很久之前, 通过button的getUserInfo拿到信息之后再执行wx.login()导致了session_key刷新, 那么新的code所获取的session_key是不能对数据进行解密的"



    这里我还不是很懂:


    • 官方说code的有效期是5分钟,假定我5分钟之内完成点击<button>获取userinfo操作,在这个时候为什么还要在回调成功后再进行wx.login操作?直接拿上次的code进行解密不行吗?

    • 假定用户在登录页停留很久,原先的code失效了(这个是不是可以用wx.checkSession来判断?),这个时候通过<button>获取userinfo回调成功后再进行wx.login操作,那这个时候的code是最新的,这个新code不就是可以用来解密嘛?(我不是很懂后台的一些知识,解密操作可能也只是开发者后台来操作,对于我前台来说,只需要把新code传给他就行了)


    2018-04-28
    赞同
    回复

正在加载...

登录 后发表内容