Appearance
微信官方政策调整说明
根据微信官方公告与小程序安全规范调整:
- 微信已正式收回
wx.getUserProfile与wx.getUserInfo接口直接获取用户微信真实头像与昵称的能力。 - 小程序在静默登录(通过
wx.login获取code换取openid)时,微信不再返回用户的微信头像与昵称,系统会赋予新用户默认头像与默认随机昵称(如“微信用户_xxx”)。
系统的适配与实现方案
EBAOZU V4 移动端(view/uniapp/)全面采用了微信官方推荐的 “头像昵称填写组件” 能力,支持用户主动设置和同步个人资料:
头像选择(chooseAvatar)
在用户个人中心或资料编辑页,通过微信原生按钮组件拉取头像选择:
html
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image :src="userInfo.avatar || defaultAvatar" class="avatar-img" />
</button>在组件回调中获取临时文件路径并上传到后端存储:
javascript
onChooseAvatar(e) {
const { avatarUrl } = e.detail;
// 调用系统的图片上传接口
this.$util.uploadImgs('upload/image', avatarUrl, (res) => {
// 将上传成功返回的图片 URL 保存并更新用户资料
this.updateUserAvatar(res.data.url);
});
}昵称填写(type="nickname")
在昵称输入框中使用微信官方提供的快捷填词能力:
html
<input
type="nickname"
v-model="userInfo.nickname"
placeholder="请输入或使用微信昵称"
@blur="onNicknameBlur"
/>开发者注意事项
- 不要依赖静默登录获取头像:静默登录仅用于换取
openid并生成鉴权 Token,切勿在后端强行拦截无头像的用户注册流程。 - 图片上传鉴权:用户通过
chooseAvatar选取的临时头像路径在上传至后端接口(/api/upload/image)时,需携带有效的用户Authorization鉴权头。