收藏
回答

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 个回答

  • Jason Z.
    Jason Z.
    2018-04-28

    @changxue_xu


    只有拿到了unionID(当然这是对需要多小程序间关联而言的, 普通的小程序openid就够了), 我才能拿到用户的登录状态, 就是说,后台那边的登录接口设计肯定是要有unionID作为参数来传递的, 所以:

    1. 对于开发者而言, 用户的登录与否是通过unionID衔接的.

    2. 对于用户而言, 登录与否就是getuserinfo <button>组件的显示与隐藏(简言之就是用户的userinfo授权与否).

    3. 可以使用globalData来存储unionID, 如果用户突然关闭授权,那么unionID置空, getuserinfo <button>组件显示,对用户而言未登录,对开发者而言因为unionID置空了,所以也是未登录状态(接口请求拿不到基于空的unionID的相关数据).


    我可以这么理解么?

    2018-04-28
    赞同
    回复
  • changxue_xu
    changxue_xu
    2018-04-28

    @Jason Z.  对你这种情况关闭授权的时候就得清除登录状态了,退出登录返回到登录页面了。或者这个地方给用户个提示拒绝用户关闭

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

    @"changxue_xu" ''登录过的用户就不在显示登录页了,直接显示首页了。''


    1.对于我前台而言, 登没登过的判断是要把unionID作为参数传给后台做网络请求判断得到(我通过<button>组件 拿到userinfo进而解密获取unionID).

    2.对于用户而言,登录的入口也就是那个<button>组件的显示与隐藏(拿到userinfo进而解密获取unionID).

    3.如果一开始用户点击了<button>,授权了userinfo,那么对于用户而言就是登录成功了,但如果用户突然通过设置关闭了授权,那么虽然对开发者而言用户依旧是登录状态的,但此时应该将<button>组件再次显示(从用户角度来说就是'未登录'了).


    我可以这么理解么?

    2018-04-28
    赞同
    回复
  • changxue_xu
    changxue_xu
    2018-04-28

    @彬彬 登录过的用户就不在显示登录页了,直接显示首页了。没明白你意思

    2018-04-28
    赞同
    回复
  • 陈龙
    陈龙
    2018-04-28

    @小黄人  

    我没关注你们公众号,没拿到unionid吧,哈哈

    2018-04-28
    赞同
    回复
  • 彬彬
    彬彬
    2018-04-27

    @changxue_xu 

    这样也是有可能会过期的, 取决于小程序内部的机制是怎么样的,

    应该是短期内多次wx.login获取的code得到的session_key应该是一样的.

    但是时间一长就不一样了


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

    2018-04-27
    赞同
    回复
  • 小黄人
    小黄人
    2018-04-27

    我已经改完了,不用登录按钮

    2018-04-27
    赞同
    回复
  • Jason Z.
    Jason Z.
    2018-04-27

    @楼上几位

    我在APP onLaunch时提前调用wx.login拿到的code为什么不能用于解密登录页getuserInfo <button>组件获取的encryptedData(假定我5分钟之内操作完成)?


    2018-04-27
    赞同
    回复
  • changxue_xu
    changxue_xu
    2018-04-27

    @陈龙不会只有在触发成功的时候才去搞code

    2018-04-27
    赞同
    回复
  • 陈龙
    陈龙
    2018-04-27

    @changxue_xu  会过期的.

    2018-04-27
    赞同
    回复

正在加载...

登录 后发表内容