我在读 联合登录为Google用户账户 图如何,我可以有一个用户登录网应用程序使用他们的谷歌的帐户。

所以结束过程中,谷歌返回的一个谷歌提供的标识符,这是附加的作为 openid.claimed_id.这意味着该网页应用程序使用这个标识符识别用户和允许进入应用程序的功能和数据。我的问题是,这是符静?我可以用这个标识到反复id相同的用户?

有帮助吗?

解决方案

是的。考虑openid.claimed_id值的用户名。特别是谷歌,但是这是真实的任何OpenID提供商提供真正实现'针对身份',不考虑这个用户名是correlatible与其他网站。任何其他依赖方除了你自己的网站将得到一个不同的claimed_id值相同的应用,通过设计。

同时,一定要把这个claimed_id作 情况敏感的.

其他提示

其实,我只是碰到了在那里的谷歌claimed_id已经为我的测试用户改变一个实例。我要来实现的OpenID到我的应用的结束,而对于没有明显理由响应数据claimed_id被改变了。

我已经用这个账户在过去的几个星期的测试,以及claimed_id是一样的这整个时间,符合市场预期。然后重打,变了!我看着响应数据多次进行验证,和底层代码以检索数据没有改变。

我不知道如何在瞬间处理这个问题,但我认为这是要扔我一个循环。初始认证后,用户注册的网站(如你所期望的),并设置一个网名。我们怎样来验证它是同一个用户,如果claimed_id发生了变化?我们当然不能用的电子邮件地址,以达到最佳效果。

修改

现在我有饼在我的脸上!我错过了一个小细节,这被证明是一个重大的细节。我改变我的开发环境,并举办不同的V主机上。这有效地更改领域,并且这将根据文档改变claimed_id响应。

这对我来说是一个很好的教训,我正要实现在其中的境界正在在我的代码自动设定一个子OID。现在我保存自己头疼的道路,因为我不会已经能够使用所有其他子域相同的用户数据库不打破身份。

更新境界

更多INFO

正如一个侧面说明 - 即使你正在为您的子网域您的OpenID的解决方案,它可能是谨慎为你指定的境界到你的顶级域名

e.g,openid.realm = HTTP://*.yourdomain.com

这将允许你扩大你的登录页在所有子域名,并保持用户身份跨越它们。

  

(可选)验证的境界。标识域结束   用户被要求去信任。 (实施例: “HTTP://*.myexamplesite.com”)   此值必须与定义的域一致   openid.return_to。如果没有定义这个参数,谷歌将利用   中的URL引用openid.return_to

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top