小程序获取用户信息方案金沙官网线上

处理方法

新增事件 bindgetuserinfo:当 open-type为 getUserInfo时,用户点击会触发。可以从事件返回参数的detail字段中获取到和wx.getUserInfo返回参数相同的数据。

1、<open-data></open-data> :只是简单的获取信息用于显示

  金沙官网线上 1

  其中,type="userAvatarUrl"是获取用户头像,type="userNickName"是获取用户昵称,具体使用详情查看小程序开发文档 ,此方法仅用于直接简单的展示用户信息。

开发者没有处理用户拒绝弹框的情况,有部分小程序强制要求用户授权头像昵称等信息才能继续使用小程序。

问题

在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息,然而为了安全考虑,从2018年4月30号开始,wx.getUserInfo接口不能直接调用(接口调整),需要使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作,意外就是来的这么突然,防不胜防!!!

金沙官网线上 2 

用户关注了某个相同主体公众号,或曾经在某个相同主体App、公众号上进行过微信登录授权。

2、使用 <button open-type="getUserInfo">获取用户信息

    小程序官方文档有在说明wx.getUserInfo 当用户未授权过,调用该接口将直接报错,即使调用该接口将直接jinru进入fail的回调; 当用户授权过,可以使用该接口获取用户信息。

金沙官网线上 3

  但是,如何有更好的用户体验来引导用户手动调用此方法呢?这里思考了几种实现方案:

1、在项目首页直接调用getUserInfo方法,若从未授权过,跳转到授权页面引导用户手动授权

     金沙官网线上 4

    在授权页面authorize 写入按钮组件金沙官网线上 5

并在js中,加入手动点击按钮的方法,返回首页

金沙官网线上 6

此方案可行,但是授权页面就一个授权的按钮未免显得突兀些,进一步做优化方案。

 

考虑到是不是能够直接通过条件渲染wx-if 在首页多加一部分遮罩层作为引导用户授权的页面展示,因为用户使用小程序一经授权以后,再次进入小程序就不用授权了,也就是说只有在用户第一次使用小程序的时候才会引导用户授权操作,所以这里考虑通过遮罩层来实现。

在首页多加一个遮罩层

金沙官网线上 7

同时查阅微信小程序开发文档 在页面加载后调用wx.getSetting方法可以获取当前用户的设置,返回值中只会出现小程序已经向用户请求过的权限,这样可以判断用户是否授权过权限

金沙官网线上 8

未授权授权遮罩层显示

               金沙官网线上 9                                           金沙官网线上 10

引导用户授权后

hasUserInfo: true

遮罩层消失,完成授权。

微信修改getUSerInfo这个接口后确实不如之前直接进入小程序自动调用获取用户信息方便些,但是确实是为了加强安全性的考究,才通过按钮的方式让用户自己主动去授权,虽然对于开发者我们来讲不太习惯,但是对于加强了用户信息的安全性,网络信息安全确实是比较重要的一环。

 

Azleal我们的小程序业务是功能都需要授权才能使用的(也就是必须拿到unionid获取用户信息)

elemeNT我在小程序与服务号的数据需要互通,通过unionId来确定用户的唯一性,如果在用户进入小程序后不强制他授权,单凭一个openid来存储他的用户数据,在用户下次从服务号进入时。不就会产生重复数据吗?就没做到数据互通了 --- ﺭ并向你吐了趴口水ﺭ五年.另外看到官方提到 要强制推行,我想说我们目前所有用户是通过unionid注册的。那么这些用户就不得不使用 openid重新登录

使用wx.getSetting获取用户的授权情况

未处理用户拒绝授权的情况

wx.getUserInfo不依赖 wx.login就能调用得到数据。

若用户满足一定条件,则可以用wx.login获取到的code直接换到unionId

unionid也不能算是个人信息吧,给多个unionid可以更方便开发者,而且很多情况下就不用调用getUserInfo了

candyTong我们提个建议,能否直接开放unionid呢?这样也许会有许多小程序不需要再弹窗了。既一定程度保障了用户体验,也照顾到了我们开发者的体验。 --- 羊毛A: 如果直接开放了unionid,就会出现这种情况:当你作为一个用户进入一个小程序,这个小程序并没要求你授权就直接把你的头像昵称显示出来(它之前把unionId对应的头像昵称都存了下来),但是这个小程序主体(open平台主体和公众平台主体并不相同)相关的任何一个应用你从来没用过,你会不会觉得很奇怪并且很不舒服,觉得自己在微信内的用户信息没有丝毫的保障?

Q: 那有推荐的比较好的例子么?对于必须使用用户头像、昵称这些信息的小程序而言 --- 亚里士朱德A: 首先,没有什么逻辑是一定要使用用户的头像、昵称才能work的。对于这个case,完全可以先用默认头像、匿名昵称先做替代,用户点击默认头像后就可以弹出授权信息,非常的水到渠成。

Q: 之前看了这个帖子一直在思考,如果是一进去需要回去用户的地理位置信息显示到地图上的呢?这样算不算是一进去就弹窗授权获取用户信息? --- 吴俊绩

本文由金沙官网线上发布于Web前端,转载请注明出处:小程序获取用户信息方案金沙官网线上

您可能还会对下面的文章感兴趣: