收藏
评论

小程序微信登录能力调整官方

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

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


  1. 能力调整背景

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

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

01

能力调整背景


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

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


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



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. 不强制用户必须登录后才能使用小程序服务

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






最后一次编辑于  2018-12-29
收藏

110 个评论

  • 包治百病
    包治百病
    2018-09-12

    哼,气死宝宝了

    2018-09-12
    赞同 1
    回复
  • L
    L
    2018-09-12

    吓我一跳

    2018-09-12
    赞同 1
    回复
  • viva la vida 🐨
    viva la vida 🐨
    2018-09-10

    就这样偷偷摸摸发个文章把功能禁了吗...连1000的浏览量都不到,坑了多少开发者...

    2018-09-10
    赞同 1
    回复 1
    • 祺爸💎
      祺爸💎
      2018-09-10

      一贯的店大欺客

      2018-09-10
      回复
  • 哄哄
    哄哄
    2018-09-08

    不是发过一遍了么 ,怎么又发 ?还以为又改接口了

    2018-09-08
    赞同 1
    回复 7
    • KarmenTse休假中
      KarmenTse休假中
      2018-09-10

      通知再通知,提醒各位开发者参考登录设计建议尽快调整

      2018-09-10
      回复
    • 安铭~charles
      安铭~charles
      2018-09-11

      旧的版本基础库也是不行的吗, 我看现在世面上还是有很多小程序都是直接唤起登录的呀。 这是怎么回事呢

      2018-09-11
      2
      回复
    • Domin
      Domin
      2018-09-11回复KarmenTse休假中

      你们三番五次的说要禁用的功能,到现在还只是文档里没有,实际还是能使用,你们能不能有点态度,你这是在鼓励大家都去投机倒把吗?说禁用就禁用啊,明面上禁用,实际还能用是几个意思啊,对说的就是群分享

      2018-09-11
      7
      回复
    • Ti Amo
      Ti Amo
      2018-09-13回复安铭~charles

      那个是原乡提价的小程序

      2018-09-13
      回复
    • 2018-09-14回复Domin

      赞同

      ```

      调整策略在基础库 2.3.0 及以上版本生效,该基础库版本对应微信客户端6.7.2版本。另外,考虑到兼容性等问题,在基础库版本 2.3.0 以下的环境中不受此策略影响,小程序/小游戏可继续获取分享回调事件。

      ```


      这就是鼓励去用低版本基础库呗。

      2018-09-14
      回复
    查看更多(2)
  • Carlito
    Carlito
    04-23

    所以到底现在怎么才能登陆?open-date也说是取消返回用户信息了,wx.getUserProfile也不行了,button的open-type="chooseAvatar" 也不行了,牛逼,现在我到底怎么登录才能拿到用户信息?对于一个大二刚学微信小程序的学生,微信真的是很贴心呢,直接封杀我的开发学习之路

    04-23
    赞同
    回复
  • 华仔
    华仔
    2022-08-24

    问题是TM的死活都取不到Unionid值啊,各种组合都试过了,其它不需要的信息都取出来了,unionid就是死活不出来,实在太狗血了

    2022-08-24
    赞同
    回复
  • 王鹏飞
    王鹏飞
    2022-08-02

    要不然kpi没内容了

    2022-08-02
    赞同
    回复
  • shadow
    shadow
    2022-03-23

    微信这边还是一直回收“使用 wx.getUserInfo 接口直接弹出授权框”以及“使用 wx.authorize 接口直接申请提前授权用户信息”的能力吗?

    2022-03-23
    赞同
    回复
  • 康庄大道
    康庄大道
    发表于移动端
    2021-02-04
    微信:我做的我想改就改想删就删
    2021-02-04
    赞同
    回复
  • 熊二在砍树
    熊二在砍树
    2020-06-20

    我晕 废弃了 也不再文档上注明 真坑

    2020-06-20
    赞同
    回复

正在加载...

登录 后发表内容