微信小程序授权功能

思路:
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、付费专栏及课程。

余额充值