【问题标题】:How does Google generate its OpenID claimed_id tokens?Google 如何生成其 OpenID 的claimed_id 令牌?
【发布时间】:2009-12-09 08:33:14
【问题描述】:

我正在使用django_openid_auth 模块并将其配置为自动为新的 OpenID 创建新的用户帐户。这使得“注册”过程非常简单,但我有点担心,由于 Google 生成 OpenID 令牌的方式,它可能会意外地为现有用户创建一个新帐户,给他们留下原始数据的印象帐户已丢失。

据我所知,Google 会为不同的域名生成不同的声明 ID 令牌。也就是说 www.site.com 和 site.com 将创建两个不同的令牌,因此在我的系统中创建两个帐户。我已经通过将 www.site.com 重定向到 site.com 来解决这个问题。

还有其他需要注意的问题吗?谁能告诉我有关 Google 使用什么来生成 ID 的一些详细信息?

【问题讨论】:

    标签: django openid django-openid-auth


    【解决方案1】:

    From the docs:

    openid.realm

    经过身份验证的领域。标识最终用户被要求信任的域。 (示例:“http://*.myexamplesite.com”)该值必须与 openid.return_to 中定义的域一致。如果未定义此参数,Google 将使用 openid.return_to 中引用的 URL。

    realm 的值在 Google 联合登录页面上用于向用户标识请求站点。它还用于确定 Google 返回的持久用户 ID 的值。

    【讨论】:

    • 所以通过 URL,我假设它包括路径,而不仅仅是域?这可以解释它,因为 return_to 可能是网站的深层链接......
    • 如果我现在添加领域,会不会弄乱 Google 生成的现有 ID?
    • 好的,深入研究 django_openid_auth 代码,我可以看到它确实将 openid.realm 正确设置为站点/域的根 url。
    • 您应该阅读适用于 openid.realm 的 OpenID 规范部分,了解该字段的详细信息:openid.net/specs/openid-authentication-2_0.html#realms
    【解决方案2】:

    StackOverflow 对于不同的哈希 OpenID 令牌有同样的问题。他们在StackOverflow blog 上详细介绍了那里的问题和可能的解决方案(Google 个人资料)。

    https://blog.stackoverflow.com/2009/11/google-offers-named-openids/

    【讨论】:

    • 配置文件要求用户先发制人地解决他们不知道自己遇到的问题,所以我认为这没有帮助。
    猜你喜欢
    • 2019-05-12
    • 2011-08-21
    • 1970-01-01
    • 2019-05-16
    • 2015-06-27
    • 2021-05-15
    • 2018-11-23
    • 2022-10-15
    相关资源
    最近更新 更多