0

我想使用 Google 的 Oauth2 API 登录到基于电子邮件地址的应用程序。考虑到用户可能不知道他们的 me@mydomain.com 是否由 google 托管,我如何检查他们的电子邮件地址并通过代码将他们重定向到 Google Auth?例如,在典型的登录页面上,您已经看到“使用我的 google 帐户登录”按钮,但如果用户不知道这是一个 google 帐户,即使他们没有点击它,我仍然想使用 OAUTH .

我考虑过对 MX 记录进行 DNS 查找,但不确定这是否是最干净/最好的方法。

即典型的 DNS 查找返回:

mydomain.com      MX preference = 10, mail exchanger = aspmx.l.google.com
mydomain.com      MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
mydomain.com      MX preference = 20, mail exchanger = alt2.aspmx.l.google.com
...
4

1 回答 1

1

对 MX 记录进行 nslookup 可能是最实用的解决方案,而且相当简单。

我遇到的问题是,除非您的应用程序专门要求您使用他们的 Google 电子邮件,否则您可能会排除某些人。我用我的 Google 帐户设置了一个备用电子邮件地址,可以使用它登录。现在,我敢猜测大多数用户会使用他们的 Google 电子邮件帐户,但你需要为其他情况做好准备.

我的建议是首先使用更简单但已弃用的方法,例如 ClientLogin。您可以使用https://www.google.com/accounts/ClientLogin?Email=who@where.com&Passwd=password做一个简单的帖子

如果您收到“Error=BadAuthentication”,则身份验证失败。如果您获得了良好的身份验证,您就会知道此电子邮件地址与 Google 帐户相关联,然后您可以使用 Oauth2 登录。我看到的唯一问题是用户输入了错误的密码。我会对所有 Google API 进行一些研究,看看它们中的任何一个是否可以告诉您密码不正确与登录失败,尽管出于安全目的可能不存在。

无论如何,祝你好运。如果您有其他想法,请让我们更新。

于 2012-10-24T15:10:21.787 回答