我正在尝试弄清楚 google openid 的工作方式,但暂时无济于事。我有一个 google 商业应用,它有自己的域名和电子邮件。我还有我的个人 gmail 帐户。
当我登录两个帐户然后尝试使用 google 的 openid url 在随机网站上进行身份验证时https://www.google.com/accounts/o8/我被要求在我的 Gmail 和域名电子邮件之间进行选择。无论我选择哪个,身份验证都会成功(我能够在 stackoverflow 上创建 2 个不同的帐户,一个用于两个电子邮件)。我想找到一个 URL,它可以“自动选择”属于 domain.com 的电子邮件并忽略任何其他电子邮件。
了解谷歌身份验证的工作方式( https://developers.google.com/google-apps/sso/openid_reference_implementation,https://sites.google.com/site/oauthgoog/UXFedLogin/summary和https://sites.google.com/site/oauthgoog/fedlogininterp/openiddiscovery),我尝试使用https://www.google.com/accounts/o8/site-xrds?hd=domain.com然后与https://www.google.com/accounts/o8/site-xrds?ns=2&hd=domain.com这确实将我重定向到 google 的身份验证并且只允许我的 domain.com 电子邮件。但是,在成功登录 google 后,我没有在网站上得到身份验证。
我尝试过https://superuser.com/与http://www.openid-ldap.org/test.php无济于事。两次都失败了,第二次告诉我:
OpenID authentication failed: No OpenID information found at http://domain.com/openid?id=114987420251804701387
知道我应该怎么做吗?如果可能的话,我宁愿不必在我的域上设置网络服务器。
谢谢
答案1
login_hint
晚了将近 8 年,但是如果您想授权特定的电子邮件,则必须在授权请求中发送参数。
话虽如此,不要引用我的话,但谷歌帐户会根据上下文自动从帐户选择器中选择您的最后一个活动帐户。
因此,如果您正在注册,它将始终向您显示帐户选择器,但如果您正在登录,它可能只会根据您的活动自动登录,如果这有意义的话。