1

只是想知道在任何情况下,Google 用户 API 会返回一个电子邮件地址,而不是用户刚刚用于登录的电子邮件地址。

我正在调试一个继承的 Google App Engine 网站并将其隔离为:

self.google_user = users.get_current_user()
email = self.google_user.email()

此代码不会返回用户刚刚用于通过 Google 登录的电子邮件地址。它返回一个不同的电子邮件地址..在这种情况下是一个 Gmail 地址。

有没有人遇到过这样的问题?

4

2 回答 2

1

电子邮件地址可能会发生变化,可能出于某种原因它会返回其原始地址。

您可能希望使用永远不会更改的唯一 ID:

您可能想要存储用户 ID(可能还有最后一次看到的邮件地址以通过邮件与用户通信)。用户ID稳定;您可以在键名或字符串属性中使用它。

您可能不想存储 UserProperty。在数据存储中,该值等于电子邮件地址加上用户的唯一 ID。如果用户更改了他们的电子邮件地址,并且您将他们存储的旧用户与新用户进行比较,他们将不匹配。

db 和 NDB 库都具有 UserProperty 属性类型,以便应用程序可以存储用户值。但是,由于这些值在用户更改电子邮件地址时变得无效,因此大多数应用程序都无法很好地使用此功能。

用户对象

于 2012-11-21T14:54:06.073 回答
0

答案如下 - Google 用户 API 仅返回 Google 帐户的 PRIMARY 电子邮件地址。因此,用户可以通过与其辅助电子邮件地址关联的 Google 帐户登录我们的应用程序,但我们只会从 API 获取主电子邮件地址。因此,我们似乎得到了一个与用户刚刚用于登录的电子邮件地址不同的电子邮件地址。

实际上,我们得到了他们刚刚使用辅助电子邮件地址登录的 Google 帐户的主要地址(心不在焉)。

于 2013-07-04T09:19:37.797 回答