细粒度的 Google OAuth 范围授权

3

作为一个隐私狂热者,我发现在Google OAuth2文档中好像找不到这个问题的解答 - 我是否只能请求电子邮件地址和用户标识符

我记得曾经有一段时间,我可以仅通过使用

https://www.googleapis.com/auth/userinfo.email

现在看起来,如果没有userinfo.profile,谷歌只会返回用户电子邮件地址。不过,我只需要从个人资料范围获取用户标识符,其他的信息对我来说都是浪费,请求个人资料权限(例如访问生日/位置)可能会引发不必要的隐私担忧(至少对我来说是这样的)。

https://www.googleapis.com/auth/userinfo.profile

请求Google用户标识符是否等于获得userinfo.profile权限?
2个回答

3

实际上,您可以只请求用户ID。

目前支持的方法是添加范围 https//www.googleapis.com/auth/plus.me

将来我们也会支持 'openid'用于此目的,但这也将导致服务器返回OpenIDConnect兼容响应,并且由于该标准仍未最终确定,现在使用它会使您面临不兼容API更改的风险。


太好了,原来有方法。只是想知道'plus.me'是否已经是一个稳定的API?我在各种Google+文档中找到它,但在主要的Google OAuth文档中没有找到。关于权限方面,'plus.me'包括什么('与您的g+个人资料相关联')?我只看到它返回ID,就像你提到的那样。 - bitinn
只是回答自己的问题,即使是没有g+个人资料的Google账户,它也会返回正确的ID。但是,如果该用户没有g+个人资料,则对https://www.googleapis.com/plus/v1/people/me的进一步请求将返回404未找到。 - bitinn

1

是的,你需要userinfo.profile范围才能获取除电子邮件地址、确认地址已验证和Google Apps用户帐户上的hd以外的任何信息(hd属性让您知道它是Google Apps帐户,而不是消费者)。这三个属性是userinfo.email返回的所有内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接