微信小程序授权功能

思路:
1.首先获取授权,看看到底有没有这个授权,如果有,那么就不再进行再次请求,如果没有,那么再次请求或者其他的业务逻辑。
2.查看授权信息接口:wx.getSetting(Object object),后面我们具体分析这个接口如何使用
3.通过来调取授权

<button open-type='getUserInfo' bindgetuserinfo="getUserInfo"></button>

业务代码:

获取用户授权信息
// 获取微信授权信息
// 			getShouquanInfo() {
// 				let _this = this
// 				uni.getSetting({
// 					withSubscriptions: true,
// 					success: function(res) {
// 						if (res.authSetting['scope.userInfo']) {
// 							// console.log('已授权')
// 							可以写自己的逻辑代码
// 						} else {
// 							// console.log('未授权')
// 							uni.showToast({
// 								title: '还未进行授权,请进行微信授权',
// 								icon: 'none',
// 								duration: 2000
// 							})
// 							// 进入授权界面
// 
// 							if (_this.query != '') {
// 								uni.navigateTo({
// 									url: '../gereninfo_shouquan/gereninfo_shouquan' 
// 								})
// 							} else {
// 								uni.navigateTo({
// 									url: '../gereninfo_shouquan/gereninfo_shouquan'
// 								})
// 							}
// 						}
// 					}
// 				})
// 			},

//这里我自己写的是进入授权界面,在授权界面内进行授权
在这里插入图片描述
···
GetUserInfo(e) {
let _this = this
_this.flag=true //按钮禁用,禁止一直点击
uni.login({
provider: ‘weixin’,
success: function(res1) {
if (res1.code) {
_this.code = res1.code
// 调取登录接口
wx.getUserInfo({
provider:“weixin”,
success: async function(res) {
// console.log(res)
if (res.userInfo) {

									// 把用户信息传递给后台进行登录
									if (_this.qrcode != '' && _this.qrcode !=undefined) {
										const data = await request({
											url: 'login',
											method: 'POST',
											data: {
												code: _this.code,
												header_img: res.userInfo.avatarUrl,
												nick_name: res.userInfo.nickName,
												qrcode: _this.qrcode
											}
										})
										// console.log(data)
										let ret = _this.handleData(data)
										// console.log(ret)
										// 本地存储token
										uni.setStorageSync('token', JSON.stringify(ret.token))
										uni.switchTab({
											url: '../index/index'
										})
									} else {
										const data = await request({
											url: 'login',
											method: 'POST',
											data: {
												code: _this.code,
												header_img: res.userInfo.avatarUrl,
												nick_name: res.userInfo.nickName,
												qrcode: ''
											}
										})
										
										let ret = _this.handleData(data)
										// console.log(ret)
										// 本地存储token
										uni.setStorageSync('token', JSON.stringify(ret.token))
										uni.switchTab({
											url: '../index/index'
										})
									}
									
								}
							},
							fail: function(err) {
								console.log(err)
							}
						})
					}
				}
			})
			uni.hideLoading()
			_this.flag=false
		},

···

如果用户授权,那么就调取wx.login()接口进行登录,获取code,.之后,调取wx.getUserInfo({})接口,获取用户数据。
获取用户数据之后,调用接口接口(自己后台写的),把得到的用户数据传到自己的服务器上进行保存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值