如何判断谷歌应用是否托管了电子邮件地址

时间:2012-10-24 14:42:48

标签: authentication dns oauth-2.0

我想使用Google的Oauth2 API根据电子邮件地址登录应用程序。考虑到用户可能不知道他们的me@mydomain.com是否由谷歌托管,我如何检查他们的电子邮件地址并通过代码将其重定向到Google Auth?例如,在典型的登录页面上,您已经看到了使用我的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
...

1 个答案:

答案 0 :(得分: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进行一些研究,看看他们中的任何一个是否可以告诉您密码错误而不是登录失败,但出于安全考虑,这可能不存在。

无论如何,祝你好运。如果你拿出别的东西,请告诉我们。