uni-app编译微信小程序,微信授权登录获取用户头像、昵称及手机号

1. 获取用户头像、昵称

<view class="cu-btn shadow lg bg-gradual-green" @click="login">微信授权登录</view>
login() {
	var that = this;
	uni.getUserProfile({
		desc: '获取您的微信信息以授权小程序',
		lang: 'zh_CN',
		success: UserProfileRes => {
			uni.showLoading({
				title: "登录中....",
				mask: true
			});
			uni.login({
				provider: 'weixin',
				success: function(loginRes) {
					let form = {};
					form.wxCode = loginRes.code; //用户code  注:用户的code每次登录都是随机的,所以不需要进行存储
					form.wxAvatar = UserProfileRes.userInfo.avatarUrl; //用户头像
					form.nickName = UserProfileRes.userInfo.nickName; //用户微信名
					form.sex = UserProfileRes.userInfo.gender; //性别
					that.request('/open/login', form, 'POST').then(wxloginres => {
						if (wxloginres.code==200) {
							uni.hideLoading();
							that.$refs.uToast.show({
								type: 'default',
								message: "登录成功!",
								complete() {
									if(wxloginres.appUser.phonenumber) {
										that.$u.route({type: 'back',delta: 1});
									}
									else that.$u.route({type: 'redirect',url:'/pages/login/TelOperate',param:{type:'bindTel'}});
							    }
						    });
						} else {
							uni.hideLoading();
							that.$refs.uToast.show({
								type: 'default',
								message: "登录失败,请稍后再试!",
								complete() {
									that.$u.route({type: 'back',delta: 1});
								}
							});
						}
					})
				},
				fail(err) {
					console.log(err)
				}
			});
		},
		fail: err => {
			console.log(err)
		}
	})
},

2. 获取手机号

<button class="cu-btn shadow lg bg-gradual-green" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信授权登录</button>
getPhoneNumber(e) {
    let that = this;
    if(["getPhoneNumber:fail user deny"].includes(e.detail.errMsg)) {
		console.log("登录---用户拒绝授权");
		return
		/* that.$refs.uToast.show({
			type: 'default',
			message: "获取手机号失败!"
		}); */
	}
	if (['getPhoneNumber:ok'].includes(e.detail.errMsg)) {
		that.request('/open/phoneLogin', {wxCode: e.detail.code}, 'POST').then(wxloginres => {
			if (wxloginres.code==200) {
				uni.hideLoading();
				that.$refs.uToast.show({
					type: 'default',
					message: "登录成功!",
					complete() {
						that.$u.route({type: 'back',delta: 1});
					}
				});
			} else {
				uni.hideLoading();
				that.$refs.uToast.show({
				    type: 'default',
				    message: "登录失败,请稍后再试!",
				    complete() {
					    that.$u.route({type: 'back',delta: 1});
				    }
			    });
			}
		})
	}
},

猜你喜欢

转载自blog.csdn.net/bo_ranlove/article/details/129991244