使用Appwrite Google OAuth无法获取用户头像求助
解决Appwrite Google OAuth登录后无法获取用户头像的问题
Appwrite 的 account.get() 方法返回的默认用户对象并不包含第三方 OAuth 提供者的头像信息,你可以通过以下方式解决:
登录时直接获取OAuth原始数据
调用account.createOAuth2Session()创建会话时,返回的会话对象里包含provider字段,其中存储了Google返回的完整用户信息,包括头像URL:const session = await account.createOAuth2Session('google', 'https://your-redirect-url.com'); const userAvatar = session.provider.user.picture;如果是前端跳转授权的方式(比如用
createOAuth2Token生成授权链接),跳转回应用后可通过account.getSession('current')获取当前会话,同样能从provider字段提取头像。将头像URL存入用户偏好
拿到头像URL后,调用account.updatePrefs()把它保存到用户的偏好设置中,后续调用account.get()就能从prefs字段读取:// 保存头像到用户偏好 await account.updatePrefs({ avatar: userAvatar }); // 后续获取用户信息 const user = await account.get(); console.log(user.prefs.avatar); // 输出头像URL确认Google OAuth权限范围
检查Google Cloud控制台的OAuth同意屏幕配置,确保已启用profile和email权限范围——这两个是获取用户头像的必要条件,Appwrite默认会请求这两个范围,但如果手动修改过配置,需确认未遗漏。
内容的提问来源于stack exchange,提问作者Abhi Jivani
相关产品推荐
相关产品推荐

