uni-app中如何在小程序端获取用户头像和昵称?

若惜 Dev 阅读 2

我用uni.getUserProfile获取用户信息,但只在微信开发者工具里能拿到,真机预览一直失败,提示“请先调用 login”。

我已经在onLoad里调了uni.login(),但还是不行,是不是顺序有问题?

我的代码大概是这样:

uni.login({
  success: (loginRes) => {
    console.log('登录成功', loginRes)
  }
})

// 紧接着调用
uni.getUserProfile({
  desc: '用于完善会员资料',
  success: (res) => {
    console.log('用户信息', res.userInfo)
  },
  fail: (err) => {
    console.error('获取失败', err)
  }
})
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
Code°丽君
这个问题我也踩过坑,微信小程序获取用户信息现在确实比较麻烦。主要问题在于uni.login和uni.getUserProfile的调用时机不对。

微信现在的规则是必须先完成login,而且必须等login的回调完成才能调getUserProfile。你的写法看起来像是同时发起两个请求,实际上login可能还没完成就调用了getUserProfile。

正确的写法应该是这样的:

uni.login({
success: (loginRes) => {
console.log('登录成功', loginRes)
// 必须在这里面调用getUserProfile
uni.getUserProfile({
desc: '用于完善会员资料',
success: (res) => {
console.log('用户信息', res.userInfo)
// 这里可以把code和userInfo一起传给后端处理
},
fail: (err) => {
console.error('获取失败', err)
}
})
}
})


真机和开发工具表现不一样是因为开发工具对一些校验做了宽松处理。另外注意现在微信对获取用户信息这块管得严,desc描述要写清楚用途,不然也可能被拒。
点赞
2026-03-08 01:00