【20210408】小程序获取用户信息方式修改
来源:5-4 授权组件login
谢成
2021-04-08
本次代码更新了小程序获取用户信息方式,详见小程序官方通知:《小程序登录、用户信息相关接口调整说明》
基础库 2.10.4 开始支持,但经测试发现2.10.4后的很多版本目前暂时还不支持新的API,所以建议大家把基础库的版本调整成最新版
该帖子中使用的调试基础库与开发工具均为写这篇帖子时的最新版:调试基础库版本为:2.16.0,开发工具版本1.05.2104012
课程中需要修改的代码:
- /miniprogram/components/login/login.wxml文件
原有bindgetuserinfo修改为bindtap
<button class="login" bindtap="onGotUserInfo">获取微信授权信息</button>
- /miniprogram/components/login/login.js文件
原有方式直接通过event获取用户信息,现在需要调用wx.getUserProfile()接口获取用户信息
onGotUserInfo() {
wx.getUserProfile({
desc: '用于发布信息时获取头像与昵称',
success: (res) => {
console.log(res)
this.setData({
modalShow: false
})
this.triggerEvent('loginsuccess', res.userInfo)
},
fail: (err) => {
console.log(err)
this.triggerEvent('loginfail')
}
})
}
wx.getUserProfile()方法每次请求都会弹出授权窗口,用户同意后返回 userInfo。旧的获取方式中,可以使用
wx.getSetting()
返回值中的res.authSetting['scope.userInfo']
来判断该用户是否对该小程序授权过,然后通过wx.getUserInfo()
静默获取用户信息。但新的获取方式中,wx.getSetting()
返回值已不再包括scope.userInfo
,所以无法知晓该用户是否对该小程序授权过。这样其实是在每次获取用户信息时,都需要用户知晓并确认。所以在该项目中,在需要用户信息的地方可以直接调用login授权组件通过wx.getUserProfile()
来授权。
-
/miniprogram/pages/blog/blog.js文件
用户在发布博客时,调用blog.js
中onPublish()
方法,原有方式通过wx.getSetting()
判断是否授权,现在方式需要直接弹出授权框// 发布功能 onPublish() { this.setData({ modalShow: true, }) // 判断用户是否授权 /* wx.getSetting({ success: (res) => { console.log(res) if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: (res) => { // console.log(res) this.onLoginSuccess({ detail: res.userInfo }) } }) } else { this.setData({ modalShow: true, }) } } }) */ },
-
/miniprogram/pages/blog-ctrl/blog-ctrl.js文件
用户在发布博客时,调用blog-ctrl.js
中onComment()
方法,原有方式通过wx.getSetting()
判断是否授权,现在方式需要直接弹出授权框onComment() { this.setData({ loginShow: true, }) // 判断用户是否授权 /* wx.getSetting({ success: (res) => { console.log(res) if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: (res) => { userInfo = res.userInfo // 显示评论弹出层 this.setData({ modalShow: true, }) } }) } else { this.setData({ loginShow: true, }) } } }) */ },
7回答
-
谢成
提问者
2021-04-08
请大家认真查看更新内容
372022-10-31 -
慕粉2337581
2022-03-09
用了新方式以后每次都需要授权,这样是正常的吗
00 -
乌拉乌拉乌拉乌拉
2021-05-08
老师我想问一下你是江大毕业的吗?和我认识的一个好像
012021-05-08 -
sjdka
2021-05-04
老师,这样改完之后每次授权完之后那个授权弹出框并不会自动收起,需要手动关闭,如何解决?
012021-05-06 -
幕布斯6331728
2021-05-02
老师,更改之后消息模板并没有推送是为什么呀
012021-05-06 -
慕UI5549312
2021-04-28
谢老师您好,我对官方的修改理解不深,觉得每次都弹窗太烦了。请问如果我使用本地存储和数据库一起来存放用户的授权信息,会有什么潜在问题吗?我搜了搜好像很少有人这么存,流程如附图。
032022-08-11 -
SK2020
2021-04-08
感谢谢老师
00
相似问题