gpt4 book ai didi

openid - 为什么 Google 的 OpenID 实现的 ID 会发生变化?

转载 作者:行者123 更新时间:2023-12-03 14:51:45 24 4
gpt4 key购买 nike

我正在尝试为 Web 应用程序实现 OpenId 登录。每当通过 OpenId 登录的新用户时,我都会在系统上创建一个新用户,并在数据中存储他们的 openid URL,以便下次他们使用该用户登录。

我正在用我的 Gmail OpenID 对此进行测试,问题是每次我这样做时,Google 都会发送一个不同的 openid URL,即 https://www.google.com/accounts/o8/id?id=SomethingThatChangesFromTimeToTime

当然,我无法判断这是否是新用户。我有点困惑:openid 标识符不应该始终保持不变吗?

最佳答案

Google 的 OpenID 标识符或多或少是多个数据的散列表示,包括请求来自的主机(更准确地说是发送给提供者的 openid.realm 参数)。因此,如果您的主机不时更改(例如端口和 IP 地址更改),那么 ID 也会不时更改。 StackOverflow 也使用了解决此问题的方法。检查这些帖子:

  • OpenID, One Year Later
  • Google’s OpenIDs are Unique Per-Domain

  • 这是谷歌的常见问题解答摘录:

    Q: The OpenID spec says that the openid.realm is optional, and that if not provided, Google should use the openid.return_to URL instead. Will that work?

    A: It will work in the sense that the protocol will complete successfully. But if your return_to URL is something like www.example.com/authenticate?style=openid-federated_login, you are asking us to prompt users to approve and trust a specific address at your site, which is not user-friendly. Also, if you omit the openid.realm parameter, you will never be able to change your return_to URL: It will also implicitly change the realm and the URL identifiers of your Google Account users.

    关于openid - 为什么 Google 的 OpenID 实现的 ID 会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2684618/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com