Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 谷歌如何生成OpenID代币?_Django_Openid_Django Openid Auth - Fatal编程技术网

Django 谷歌如何生成OpenID代币?

Django 谷歌如何生成OpenID代币?,django,openid,django-openid-auth,Django,Openid,Django Openid Auth,我正在使用django\u openid\u auth模块,并将其配置为自动为新的openid创建新的用户帐户。这使得“注册”过程非常简单,但我有点担心,由于谷歌生成OpenID令牌的方式,它可能会意外地为现有用户创建一个新帐户,给他们留下原始帐户中的数据丢失的印象 据我所知,谷歌将为不同的域名生成不同的ID代币。也就是说,www.site.com和site.com将在我的系统中创建两个不同的令牌和两个帐户。我通过将www.site.com重定向到site.com解决了这个问题 还有什么我需要注

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

据我所知,谷歌将为不同的域名生成不同的ID代币。也就是说,www.site.com和site.com将在我的系统中创建两个不同的令牌和两个帐户。我通过将www.site.com重定向到site.com解决了这个问题


还有什么我需要注意的问题吗?还有谁能告诉我一些谷歌用来生成ID的细节吗?

StackOverflow在不同的散列OpenID令牌上也有同样的问题。他们详细说明了存在的问题和可能的解决方案(谷歌档案)

openid.realm

已验证的领域。标识要求最终用户信任的域。(示例:“http://*.myexamplesite.com”)此值必须与openid.return\u to中定义的域一致。如果未定义此参数,Google将使用openid中引用的URL。返回到


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

因此,通过URL,我假设它包括路径,而不仅仅是域?这可以解释它,因为返回可能是一个深入站点的链接…如果我现在添加领域,它会弄乱Google生成的现有ID吗?好的,通过django_openid_身份验证代码,我可以看到它确实正确设置了openid.realm,到站点/域的根url。您应该阅读适用于
OpenID.realm
的OpenID规范部分,以了解此字段的确切细节:配置文件要求用户先发制人地解决他们不知道的问题,因此我认为这没有帮助。