没有Google+的情况下使用Google OpenID委托提供者

3
多年来,我一直使用自己的域名frightanic.com作为我的OpenID。然而,我的网站通过在index.html的HTML头部中使用以下内容来委派给Google的OpenID提供程序:
<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" >
<link rel="openid2.local_id" href="http://www.google.com/profiles/marcelstoer" >

谷歌在引入Google+后破坏了此功能。现在每次尝试登录时,他们都会显示一个“切换到Google+”页面,没有逃脱的机会。
除了寻找新的OpenID提供者或在StackExchange上单击谷歌登录选项之外,有什么解决方法吗?

与此同时,我放弃了谷歌并成为了自己的OpenID提供者,使用SimpleID。效果非常好,迫不及待地想知道长期使用的体验如何。 - Marcel Stör
2个回答

3
有点不确定,但使用标识符在您的local_id中选择URL会起作用吗?
<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud">
<link rel="openid2.local_id" href="https://www.google.com/accounts/o8/id">

(请注意,第二个 URL 是 /id 而不是 /ud)

我很惊讶它确实起作用了,没想到会这样(根据我看到的文档)。由于我有点厌倦依赖 Google 的 OpenID,我可能会坚持使用 SimpleID。 - Marcel Stör
这是我唯一看到正确记录的地方。这让我从我的常规Google帐户切换到了我的Google应用程序账户,以进行OpenID身份验证。谢谢! - Keith Devens
1
它可以工作,但这不会允许任何人从您的页面登录,因为它没有与用户特定链接的内容。 - lapo
1
@lapo:不是的。local_id字段提供了从提供者标识符到域的映射。在这种形式下,它意味着具有提供者标识符https://www.google.com/accounts/o8/id的用户拥有该域名,由于没有用户拥有此ID,因此没有人拥有该域名。你可以说这段代码基本上是一个纯粹的重定向到Google登录。 - Michał Górny
对于那些使用自定义URI委托给Google进行身份验证的人,想知道这是否可以绕过Google的OpenID 2.0弃用,事实并非如此。当您登录时,它允许您通过Google进行身份验证和授权SE的过程,但是当您实际到达SE时,它被视为新登录(即您正在使用Google ID而不是您在第一步提供的自定义OpenID URI进行登录)。 - MrCranky

3
我能够稍微改变一下这个,但我刚刚创建并删除了一个Google Plus配置文件,所以我不确定它是否会在未来几天停止工作。
请访问http:// profiles.google.com。 它应该将您重定向到一个配置文件页面,其中包含与URL中列出的用户编号类似的内容:
https://profiles.google.com/NNNNNNNNNNN/about

或者,它可能只要求您注册Google Plus。如果是这样,您可以启用它,然后删除Google Plus个人资料。标识符应该持续存在,并且上述技巧应从现在开始有效。遗憾的是,我不知道如何规避此问题。

将网址中的数字NNNNNNNNNNN复制到以下片段中,它就可以工作:

片段如下:

<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud" />
<link rel="openid2.local_id" href="https://profiles.google.com/NNNNNNNNNNN" />

请注意,现在没有?source=profiles了。这个选项以前对我有效,但现在会导致500错误。
从我使用OpenID-LDAP测试的结果来看,openid2.local_id可以接受任何值。它只是负责将您的Google标识符映射到您的域。任何其他Google标识符都将按原样使用,而不进行映射。
也就是说:
  1. 如果您使用列为local_id的Google帐户登录,则将作为http://yourdomain.com登录。

  2. 如果您使用任何其他Google帐户登录,则将作为https://www.google.com/accounts/o8/id?...登录。

如果local_id具有无效值,即与任何帐户标识符不匹配,则所有用户将使用其“长”Google ID登录,而片段基本上将成为一个普通的重定向到Google登录。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接