如何通过Google access token或id token获取用户名、邮箱等用户信息?
问题核心原因
你在发起Google OAuth2授权请求时没有申请对应的权限范围(scope),因此Google仅返回了最基础的用户标识字段,没有返回用户名、邮箱等敏感信息。
解决步骤
- 第一步:在授权请求的scope参数中追加两个固定权限值:
https://www.googleapis.com/auth/userinfo.profile、https://www.googleapis.com/auth/userinfo.email,多个scope之间用空格分隔。如果使用Google官方SDK,直接在scope配置列表中添加这两个值即可。 - 第二步:重新发起授权流程,建议在授权链接中添加
prompt=consent参数,强制唤起授权确认页,避免因为用户之前已经授权过低权限版本导致不弹授权框的问题。 - 第三步:用户同意授权后,用新拿到的access_token调用userinfo接口,或者解析新的id_token,就能拿到用户名、邮箱等完整信息。
正常返回示例
{ "sub": "100366573866312827626", "name": "用户全名", "given_name": "名", "family_name": "姓", "picture": "https://lh3.googleusercontent.com/a/default-user=s96-c", "email": "xxx@gmail.com", "email_verified": true, "locale": "zh-CN" }
内容的提问来源于stack exchange,提问作者roberto
相关产品推荐
相关产品推荐

