【问题标题】:Google OpenID delegate provider without Google+没有 Google+ 的 Google OpenID 委托提供商
【发布时间】:2013-01-05 22:13:55
【问题描述】:

多年来,我一直使用自己的域 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+ 打破了这一局面。现在,每次登录尝试时,他们都会显示一个“切换到 Google+”页面,无法逃脱。

解决方法是什么(除了寻找新的 OpenID 提供商或单击 StackExchange 上的 Google 登录选项)?

【问题讨论】:

  • 与此同时,我抛弃了 Google,并使用 SimpleID 成为了我自己的 OpenID 提供商。具有魅力,渴望了解长期体验。

标签: openid google-plus openid-provider stackexchange


【解决方案1】:

有点摸不着头脑,但会在你的 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。
  • 这是我看到的唯一正确记录的地方。这让我可以从我的普通 Google 帐户切换到我的 OpenID 的 Google Apps 帐户。谢谢!
  • 它可以工作,但这是否允许任何人从您的页面登录,因为它没有任何具体链接到用户?
  • @lapo:不。local_id 字段提供从提供者标识符到域的映射。在这种形式中,这意味着具有提供者标识符https://www.google.com/accounts/o8/id 的用户拥有该域,并且由于没有用户拥有此 id,因此没有人拥有该域。你可以说这个 sn-p 基本上是一个简单的重定向到谷歌登录。
  • 对于那些使用从自定义 URI 到 Google 进行身份验证的委托,想知道这是否可以绕过 Google 弃用的 OpenID 2.0,但事实并非如此。当您登录时,它允许您通过 Google 进行身份验证过程并授权 SE,但是当您真正进入 SE 时,它被视为新登录(即您使用您的 Google ID 而不是自定义 OpenID 登录您在第一步提供的 URI)。
【解决方案2】:

我能够破解这个问题,但我刚刚创建并删除了一个 Google Plus 个人资料,所以我不确定它是否会在几天后停止工作。

转到http://profiles.google.com。它应该将您重定向到一个配置文件页面,其中您的用户编号列在 URL 中:

https://profiles.google.com/NNNNNNNNNNN/about

或者,它可能只是要求您注册 Google Plus。如果是,您可以启用它,然后删除 Google Plus 个人资料。标识符应该保持不变,并且上述技巧应该从现在开始起作用。可悲的是,我不知道如何解决这个问题。

将该 URL 中的数字 NNNNNNNNNNN 复制到以下 sn-p,它应该可以工作:

sn-p 看起来像:

<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 test 的尝试来看,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 登录,并且 sn-p 基本上是一个简单的重定向到 Google 登录。

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2012-05-16
    相关资源
    最近更新 更多