微信小程序更新接口wx.getUserProfile相关解读
微信小程序相关公告链接:小程序登录、用户信息相关接口调整说明
原文本地备忘:微信小程序更新接口wx.getUserProfile涉及小程序登录/用户信息相关接口调整说明
getUserInfo 和 getUserProfile 的区别和应用场景
1、从大趋势看,隐私权限只会越来越严格,原来 getUserInfo 静默获取所有用户资料的形式不太可能了,未来就是按需获取,而且需要征得用户的授权同意。
2、原有 getUserInfo 返回的 iv、encryptedData 可在后端静默解密获取unionid;现在小程序绑到了开放平台后 wx.login 即可在后端换取 unionid,因此 wx.getUserProfile 返回的 iv、encryptedData 目前无实际意义
3、getUserProfile 只需要更新头像和昵称等信息的时候调用就行,且需要用户触发和弹窗授权。
4、新的方式 wx.login + wx.getUserProfile 可替代原有 wx.getUserInfo 的场景,唯一的区别就是getUserProfile每次都需要用户授权。
wx.login登录和wx.getUserProfile资料获取
先通过 wx.login 获取临时登录凭证code,传到开发者服务器处理获取 openid 和 session_key,以及本次新增可获取 unionid,接着开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份,再调用wx.getUserProfile 获取用户基本资料。
微信限制了 wx.getUserProfile 不能直接调,且不能在一个点击事件回调里先调 wx.login 再调 wx.getUserProfile,所以在点击前就得先调用wx.login获取code并缓存起来(注意别超时了),或者先调用 wx.getUserProfile 再嵌套 wx.login 处理授权和资料。
这里明确一下,之前的 wx.login 加 wx.getUserInfo 结合的方法现在不能用了,wx.getsetting 在 wx.getUserProfile 授权之后还是不能获取到scope.userInfo为true。
wx.getUserProfile 相关参考文档
微信小程序更新接口wx.getUserProfile涉及小程序登录/用户信息相关接口调整说明
微信小程序更新接口wx.getUserProfile相关解读
微信小程序更新接口wx.getUserProfile后获取用户昵称变成[微信用户]的解决方法
微信小程序更新接口wx.getUserProfile后不返回scope.userInfo权限
微信小程序更新接口wx.getUserProfile后获取用户资料及授权登陆判断的方案