uniapp小程序最新getUserProfile方法登录

2,378 阅读2分钟

根据最新的通知

   为优化用户的使用体验,平台将进行以下调整: 1,2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID 2,2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。 3,新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》 ———————————————— 版权声明:本文为CSDN博主「xun-ming」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/diyangxia/a…

老的getUserInfo现在新用户登录无法获取头像只有一个“微信用户”的默认名字和一个空头像,

之前是

<button open-type="getUserInfo" @getuserinfo="wxGetUserInfo" withCredentials="true">微信一键登录</button>

来获取登录所需的头像名称和iv、encryptedData等信息,

现在只需要普普通通的:

<button @click="getInfo">微信一键登录</button>

方法内部

getInfo(){
    let self = this;
    uni.getUserProfile({
	desc:"获取你的昵称,头像,地区以及姓名",
	success: res =>{//res里面就能获取到头像名称位置等信息
	if (res.errMsg === 'getUserProfile:ok') {
		self.iv = res.iv;
		self.encryptedData = res.encryptedData;
		self.wxLogin();
	}
    },
    fail:(err) =>{
	console.log("您取消了授权,登录失败")
    })
},
wxLogin() { //微信登录
    uni.login({ 
        provider: 'weixin', 
        success: function(loginRes) { 
            let weixinCode = loginRes.code; 
            self.loginWeChat(weixinCode)//必要把参数传给后端
        } 
    }); 
},

如果是要获取电话的话:

<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">获取电话</button>

getPhoneNumber(res) {
    self.iv = res.detail.iv;
    self.encryptedData = res.detail.encryptedData;
    wx.checkSession({
        complete() {
            uni.login({
                provider: 'weixin',
                success: function(loginRes) {
	            let weixinCode = loginRes.code;
	            self.getPhoneNumberAfter(weixinCode)
                }
            });
        }
    })
},