Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/authentication/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 如何判断电子邮件地址是否由谷歌应用程序托管_Authentication_Dns_Oauth 2.0 - Fatal编程技术网

Authentication 如何判断电子邮件地址是否由谷歌应用程序托管

Authentication 如何判断电子邮件地址是否由谷歌应用程序托管,authentication,dns,oauth-2.0,Authentication,Dns,Oauth 2.0,我想使用Google的OAuth2API基于电子邮件地址登录到应用程序。考虑到用户可能不知道他们的me@mydomain.com是由google托管的,我如何检查他们的电子邮件地址并通过代码将其重定向到google Auth?例如,在一个典型的登录页面上,您已经看到了“使用我的google帐户登录”按钮,但是如果用户不知道这是一个google帐户,即使他们没有单击它,我仍然希望使用OAUTH 我考虑过在MX记录上进行DNS查找,但不确定这是否是最干净/最好的方法 i、 e.典型的DNS查找返回:

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

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

i、 e.典型的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
...

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

我的问题是,除非你的应用程序专门要求你使用他们的谷歌电子邮件,否则你可能会排斥一些人。我有一个备用电子邮件地址设置了我的谷歌帐户,可以使用它登录。现在,我冒昧地猜测,大多数用户都会使用他们的谷歌电子邮件帐户,但你需要为另一种情况做好准备

我的建议是首先使用一种更简单、不推荐使用的方法,比如ClientLogin。您可以使用

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


不管怎样,祝你好运。如果您有其他想法,请随时通知我们。

谢谢您的评论。我的想法是用户只会输入他们的电子邮件地址。单击“登录”后,服务器将确定如何对用户进行身份验证。如果是google[apps]帐户,则使用google OAUTH2,如果是Yahoo,则使用他们的oauth服务,如果两者都不是,则让用户为我的站点创建密码。MX记录将是您的最佳记录,但没有确定的方法确保您包括所有人。让他们点击一个按钮,让他们选择使用该帐户登录,不是更容易吗?大多数网站都是这样处理的。