【问题标题】:www.googleapis.com/userinfo/email returns different result depending on scopeswww.googleapis.com/userinfo/email 根据范围返回不同的结果
【发布时间】:2013-09-03 18:11:48
【问题描述】:

使用google的Oauth 2 Playground,可以证明:

  1. 如果您只选择 google OAuth api v2 范围,并使用此处标题中的 url 获取电子邮件,那么您将获得 gmail 地址。
  2. 另一方面,如果您选择该范围和 youtube 范围 https://www.googleapis.com/auth/youtube,那么您将获得 google+ 电子邮件地址,而不是 gmail 地址。

发生这种情况似乎令人不安;我想使用 gmail 地址来识别应用程序中的用户。 无论范围组合如何,我怎样才能每次都获取 gmail 地址? 我不想让用户登录两次(一次获取 youtube api v3 的令牌,一次获取从 Oauth api v2 获取 gmail 地址的令牌。

另外,还有一个烦恼;在“应用程序想要”屏幕中,/auth/userinfo.email 范围导致我们被告知应用程序想要“查看您的电子邮件地址”“知道您在 Google+ 上的身份”......我真的会而是它没有导致后者!

【问题讨论】:

标签: oauth youtube-api google-api google-oauth


【解决方案1】:

不确定我是否理解 gmail 电子邮件地址和 google+ 电子邮件地址之间的区别。是否您的用户有两个同时登录并且为每个范围使用不同的登录?

Google 建议不要使用电子邮件地址作为标识符,因为它可以更改。电子邮件地址旁边是一个 google 用户 ID,您应该将其用作标识符。

+1 评论“了解您在 Google+ 上的身份”。我不想要它,也没有要求它,但 Google 提出来了,它正在扼杀我的客户获取。

【讨论】:

  • 好的,您可能需要一个关联的 google+ 帐户来作为 youtube 帐户。那么你应该能明白我的意思;不漂亮。
  • 您能否发布您的以下详细步骤。如果我尝试我认为你的意思,它对我来说很好,我得到相同的电子邮件地址。唯一的区别是,如果我包含 youtube 范围,那么帐户选择器还会在我的主电子邮件地址旁边显示我的 youtube 频道地址。如果我选择我的主电子邮件地址,那么这就是随后返回的内容 a
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多