Google api 谷歌';s用户信息API是否提供任何保证?

Google api 谷歌';s用户信息API是否提供任何保证?,google-api,google-oauth,Google Api,Google Oauth,几个月前,我们为我们的网站实现了GoogleOAuth。到目前为止,已有两名用户(约100名)的用户信息档案不完整。我们使用有效令牌调用“?”,响应json仅包含[locale,verified_email,email,id] 文档()不是明确的,但是我解释它们的方式 答复应始终包括: [身份证、电子邮件、验证电子邮件、姓名、给定姓名、姓氏、时区、性别] 有时包括: [图片、地点] 有人知道UserInfo API附带了什么样的保证吗?我是否应该将不完整的配置文件视为无效而拒绝?对于个人资料不完

几个月前,我们为我们的网站实现了GoogleOAuth。到目前为止,已有两名用户(约100名)的用户信息档案不完整。我们使用有效令牌调用“?”,响应json仅包含[locale,verified_email,email,id]

文档()不是明确的,但是我解释它们的方式

答复应始终包括: [身份证、电子邮件、验证电子邮件、姓名、给定姓名、姓氏、时区、性别] 有时包括: [图片、地点]

有人知道UserInfo API附带了什么样的保证吗?我是否应该将不完整的配置文件视为无效而拒绝?对于个人资料不完整的原因是否有其他解释

2014年3月6日更新 我能够复制这个问题。我们将用户发送到谷歌,请求两个范围:




据我所知,谷歌不允许用户选择他们允许的范围。要么全力以赴,要么一事无成。但是,我能够从URL中删除userinfo.profile范围并重新加载页面。这导致我被发送回一个有效的令牌,但不是正确的作用域。我需要点击tokeninfo端点并确保正确的作用域已被授权。

您也在使用OpenID吗?我强烈怀疑这些用户实际上没有UserInfo的有效OAuth令牌,而是您获得了与较弱的OAuth权限相对应的数据。理想情况下,询问这些用户您网站的哪些数据出现在他们的谷歌账户安全页面中,并将其与功能用户(例如您自己)的数据进行比较


试着撤销你的令牌并点击端点,看看你得到了什么结果。

NB:我就是这么想的:

我也已经与OAuth合作一段时间了,例如在Facebook个人资料中遇到过这个问题。老实说,我不明白为什么请求应该返回不完整的数据(假设范围是正确的),除了提供者的实际配置文件是不完整的(尽管您使用此
[locale,verified\u email,email,id]
和no
[firstName,lastName]
没有任何意义)。例如,某些配置文件没有配置文件图片e.t.c

总而言之,我想说:这不是保证(这不仅仅是谷歌特有的)。我以前编写过OAuth identity server,OAuth不执行任何操作(除非我错过了),以强制执行必须通过API公开的数据类型。在存储数据之前,应该先检查数据


例如,拒绝配置文件部分,我认为这应该是您在应用程序中设置的一个标准,即您不接受没有
名字的配置文件。对于某些配置文件,“userinfo”范围不返回给定的名称和族名称。在我找到原因之前,我将在没有返回值的情况下为这两个字符串使用空白字符串。我不能假设谷歌让人们在不提供名字和姓氏值的情况下创建谷歌账户。GoogleAPI有缺陷,速度慢,令人困惑。因此,我宁愿假设这是API问题。

试试userinfo API的v3,它已经非常可靠地返回了
给定的名称


我不确定我是否理解你的答案。为了澄清,我们没有使用OpenID。我们正在使用服务器端工作流。用户跳转到google的OAuth页面,返回时带有一个“代码”,该代码通过“”端点(服务器端)交换为令牌