微信小程序更新接口wx.getUserProfile相关解读

微信小程序相关公告链接:小程序登录、用户信息相关接口调整说明

原文本地备忘:微信小程序更新接口wx.getUserProfile涉及小程序登录/用户信息相关接口调整说明

getUserInfogetUserProfile 的区别和应用场景

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后获取用户资料及授权登陆判断的方案

人人商城小程序整体修改基于新接口wx.getUserProfile获取用户资料及授权登陆判断

人人商城小程序用户授权登录及数据获取流程分析