引导语
现在的场景是我们实现完了用户的登录接口,已在理想状态下(能登录,数据库已准备好,用户信息为当前微信用户信息),我们来看看在这个情景下几个同学的对话,也许能帮助我们搞清:登录,授权,获取用户信息之间的关系。
人物 | 角色 | 问题 | 看法 |
---|---|---|---|
大黑 | 老师 | 登录,授权,获取用户信息之间的关系 | 我就看看不说话 |
小黑 | 学生 | 登录,授权,获取用户信息之间的关系 | 登录后才能获取用户信息 |
小白 | 学生 | 登录,授权,获取用户信息之间的关系 | 授权后才能获取用户信息 |
三个人的对话
老师问: 小黑,小白你们俩过来,为师考验一下你们。
老师问: 小程序需要展示用户信息,需要获取用户信息,此时应该进行什么操作才能实现?A: 用户登录,B:用户授权,C:获取用户信息,D:以上都有
开始抢答!!!
小黑:(一脸黑人尼克杨问号脸)???
小白:(一脸黑人尼克杨问号脸)???
小黑: 老师,你这个问题是你没有想好怎么问?还是我觉得太简单?既然要获取用户信息那必须先登录呀,登录完之后获取用户信息展示,所以选 A, C。
小白: 不对,不对,微信小程序,你可以不登陆也能获取用户信息的,所以应该是直接获取用户信息,老师应该选 C
老师: 你们说的不是不对,但对于当前情况来讲是不完整的答案,来,听我细细的讲解。
老师的讲解
- 微信小程序无需登录能获取当前用户的基本公开信息
- 只有用户授权之后才能获取用户信息
如果说是平常所见的App,那么用户必须登录后才能获取信息,不登陆肯定不知道它是谁,但微信小程序有点特殊,它能在不登陆的状况下获取当前所登录微信的信息(有个爸爸就是不一样),但是就算有牛B的爸爸也不能为所欲为,因为用户才是真正的爸爸。那么用户爸爸不愿意在他不知情的情况下被小程序获取信息了,这下怎么办呢?于是用户授权便诞生了。用户爸爸同意了(即同意授权获取信息),那么此时小程序便可以调用wx.getUserInfo()
接口来获取用户信息。
小结
- 用户登录,根据自己的情况去操作(更改,扩展信息)。
- 获取用户信息(昵称,头像,性别)之前必须显示让用户授权,不然
wx.getUserInfo()
直接回调错误方法。