小程序微信登录能力调整

为了优化用户的使用体验,平台将回收“使用 wx.getUserInfo 接口直接弹出授权框”的能力,开发者需要使用组件方式唤起登录授权弹窗。

2018年10月10日后发布新版本的小程序,将无法在线上版本中使用接口直接弹出授权框。开发者可结合平台设计建议,提前做好兼容,合理使用微信登录能力。


  1. 能力调整背景

  2. 怎么合理使用微信登录能力

  3. 小程序登录流程设计建议

01

能力调整背景


推出微信登录能力的初衷是希望:当用户使用小程序时,可以便捷地使用微信身份登录小程序。但在实际使用场景中,我们发现:很多开发者在打开小程序时直接弹出授权框,如果用户点击拒绝授权,无法使用小程序

在用户无法获知当前小程序服务内容的情况下,很多用户就会选择拒绝授权并离开当前小程序。所以“一进入小程序就要求用户授权”的做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。


所以平台调整登录接口,回收“使用 wx.getUserInfo 接口直接弹出授权框”的能力,并鼓励开发者参照以下指引合理改造小程序内的登录流程。



02

怎么合理使用微信登录能力


平台分别提供多种方式实现微信登录:

1. 调用wx.login接口,静默获取openid

适用场景:无需使用用户头像、昵称、Unionid信息

2. 使用 open-data (小程序)或者开放数据域(小游戏)的方式展示用户信息(无需用户授权)

适用场景:需要在前端“展示”用户头像、昵称信息,但不需要获取Unionid

3.使用button(小程序)或UserInfoButton(小游戏)组件,用户点击后弹窗请求用户授权

适用场景:需要获取用户头像、昵称、Unionid等基本信息


开发建议

第一步:获取openID

当用户访问小程序时,先通过wx.login,获取用户openID 。这时无需弹框授权,开发者拿到 openID 可以建立自身的帐号 ID。

第二步: 使用open-data方式或开放数据域方式展示头像昵称

如需要在前端展示用户头像、昵称信息, 使用open-data 方式或者开放数据域的方式展示用户信息

第三步:根据实际使用场景,使用组件,引导用户登录

在关键操作中,如必须获取用户头像、昵称、UnionID信息,可根据第一步获取的openID判断是新用户还是旧用户:

    如果是旧用户,可以直接登录,也可定期使用wx.getUserInfo更新用户的信息;

    如果是新用户,使用button(小程序)或UserInfoButton(小游戏)组件,在用户点击后弹窗请求获取用户基本信息。



03

小程序登录流程设计建议


a. 在必须用到登录信息的环节引导用户登录

在用户必须登录时才引导用户登录(如:购买前需要获取会员信息,用于同步积分数据),而不是用户一进入小程序就弹窗要求用户授权。如只需要在前端展示用户头像、昵称,无需要求用户授权,可直接展示。



b.清晰、准确地引导用户登录

在登录页面中,清晰、准确地告知用户当前操作是登录,说明获取登录信息的目的(如:用于同步会员积分数据等)



c. 不强制用户必须登录后才能使用小程序服务

提供游客模式,不强制用户必须登录后才能进入小程序。如要求必须授权头像昵称等信息才能继续使用小程序,会导致某些用户放弃使用该小程序。






最后一次编辑于  09-12  (未经腾讯允许,不得转载)
收藏 0评论 84
  • 祺爸🍭祺爸🍭

    不知道官方的奇葩脑回路是怎么想的,还是说一如既往的以为难开发者为己任?

    在坑爹的openid机制下,unionid比起openid更是开发者所需要的,明显应该降低unionid的获取门槛

    赞同 55没有帮助
    评论 9
    复制
    09-10
    • 陈刚陈刚

      现在的open-data或者button获取机制只是徒增了开发者和用户的烦恼,我相信微信后台是能看到数据的,用户进到功能页面,9成的用户是会同意授权或者点击button的,在这种情况下,为什么要脱裤子放屁的方式给用户怎么麻烦?以增强用户体验之名,行降低用户体验之实,赞同openid和unionid同步返回给开发者的请点赞,让官方听听开发者的呼声。


      赞同 69没有帮助
      回复
      复制
      09-13
    • 祺爸🍭祺爸🍭

      首先,他们一开始搞出的openid机制就是完全错误的,他们又觉得自己是腾讯大厂,觉得承认错误并修改是很折面子的事情

      其次,他们一直仗着自己店大欺客,根本就不在乎开发者是怎么想的,反正不管怎么样开发者都只能接受

      赞同 4没有帮助
      回复
      复制
      09-13
    • A十大杰出神仙A十大杰出神仙
      回复祺爸🍭

      核心问题是这些规则设计者太没经验了,之前看微信的api,从命名到使用方式都给人很强烈的新手程序员的赶脚。可能算是手快比较聪明的程序员,但是缺乏更高层面的设计能力,其实设计api给别人用是一个更难的事情。

      难为人的主要原因,很可能是这些程序员就是没想明白。现在骗子打电话都直呼你姓名知道你信息的时代,微信那个劳什子的id有什么用吗,除了程序员为了标识用户之外。

      赞同 5没有帮助
      回复
      复制
      09-15
    • 展示更多
    评论
  • 殇!殇!

    程序员何苦难为程序员!

    赞同 37没有帮助
    评论 0
    复制
    09-12
  • 听风吹听风吹

    我就要强制用户去授权,你要咋滴

    赞同 12没有帮助
    评论 3
    复制
    09-13
    • bigoldbigold

      业务需要必须要强制授权。。。

      赞同 2没有帮助
      回复
      复制
      09-13
    • 释&然释&然


      赞同 1没有帮助
      回复
      复制
      09-20
    • 追风筝的人追风筝的人
      回复bigold

      那就只能在登陆之前给个按钮强行让用户点击授权,mmp

      赞同 0没有帮助
      回复
      复制
      10-09
    评论
  • Soy_mengSoy_meng

    别这样,刚改的代码还以为你们又改了。。。

    赞同 7没有帮助
    评论 0
    复制
    09-11
  • DlenoDleno

    MB的,你这样对于那些都用Unionid来做用户标识的有什么作用??还不是一样的么。。。

    openId就是个坑,为毛不直接把openId变成Unionid呢。不很多问题都解决了么。。甚至好多小程序都不需要按钮授权了。。。。

    赞同 6没有帮助
    评论 2
    复制
    09-12
    • 🚄🚄

      不同意授权 就是不让你用

      赞同 3没有帮助
      回复
      复制
      09-14
    • FzFz
      回复🚄

      哈哈哈,就是。

      赞同 1没有帮助
      回复
      复制
      09-27
    评论
  • !Aelx!Aelx

    微信:我做的我想改就改想删就删

    赞同 5没有帮助
    评论 1
    复制
    09-17
    评论
  • MaoshengMaosheng

    将getUserInfo改为按钮触发授权并没有什么意义,自己写一个授权弹框或者写多一个授权页面就又回到先授权后进小程序的局面了。还不如干脆在审核发布的时候限制死。

    赞同 5没有帮助
    评论 1
    复制
    09-12
    评论
  • Amy(。-。)Amy(。-。)

    微信为何要禁用自动获取用户信息弹窗,害我多写了多少代码,产品流程不会变的,很明显为难我们前端

    赞同 4没有帮助
    评论 2
    复制
    09-12
    • Minus oneMinus one

      那你有什么办法呢?


      赞同 0没有帮助
      回复
      复制
      09-13
    • 随风而逝随风而逝

      我觉得小程序的还算好的,有接口去打。我做公众号的,授权还要跳转到授权页面,授权完再打回来,再才是我自己的业务。流程就变成用户进入我的页面=>我跳转到授权页授权=>授权完再打回我的页面,这就得跳转三次页面了,尼玛的页面跳转好看吗?不要时间?每次人家测试或者运营就找我们前端说页面打开速度慢!尼玛,我能怎么办?

      赞同 0没有帮助
      回复
      复制
      10-08
    评论
  • 芒果很忙芒果很忙

    我们倒觉得用户不授权就不能用也没啥问题,你们倒是急的够呛,这可咋说呢,闲得蛋疼啊

    赞同 4没有帮助
    评论 1
    复制
    09-12
    • 随风而逝随风而逝

      本来就是,你用户不授权不就是相当于不登录吗?你微信怎么要让别人注册登录了再使用啊?你干嘛不弄个游客模式啊?

      赞同 1没有帮助
      回复
      复制
      10-08
    评论
  • 卡布提诺卡布提诺

    改来改去,又改回去了

    赞同 3没有帮助
    评论 0
    复制
    09-12