0

我在我的 Web 应用程序中使用 openid 身份验证。我有两张表,一张用于为任何 user_id 存储多个 openid_url 并以 openid 作为主键。

还有另一个表,其中包含以 user_id 作为主键的用户详细信息。

我的身份验证工作,然后我检查返回的 url 是否在我的 openid 表中可用,如果它不存在,我重定向到创建用户表单,而如果 url 存在,则用户被重定向到他所在的页面。但是我面临一个奇怪的问题,即在谷歌身份验证后为我的电子邮件 ID 返回的 url 与前一天左右存储在 db 中的值不匹配。

我不确定我是否遗漏了某些东西,或者我是否必须在 openid 2.0 中使用其他东西。

在这一点上的任何线索都受到高度赞赏。

编辑:

我又得到了一个处理我正在寻找的信息的线程。 为什么 Google 的 OpenID 实现的 ID 会发生变化?

4

2 回答 2

3

Google 为每个服务提供商(中继方)使用唯一标识符。

请验证您这边是否使用了一致的 openid.realm。那就是你这边的协议和域名。例如:https ://stackauth.com

如果您混合使用“www”。无论是否使用前缀或混合使用 http 或 https,Google 都会将您视为不同的服务提供商,并为同一用户提供不同的 ID。

于 2011-04-24T13:03:11.310 回答
0

我已经浏览了许多文档,并且仅在使用 google 的情况下才使用电子邮件作为用户标识符。这是一个属性,对于任何站点任何域都是唯一的。

于 2011-04-25T07:59:44.587 回答