Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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会话从另一个域重定向时被丢弃_Django_Oauth - Fatal编程技术网

Django会话从另一个域重定向时被丢弃

Django会话从另一个域重定向时被丢弃,django,oauth,Django,Oauth,当用户访问我的域时,django会发布sessionid。当他试图在Facebook上运行Oauth时,他点击了我网站上的一个按钮,该按钮会重定向到Facebook.com。Facebook重定向回我的域,但此时,用户的会话丢失,Django似乎正在发布一个新的会话变量 我希望删除的会话保持不变,因为我必须将访问我网站的访问者与其Facebook帐户相关联,但当会话被删除时,登录的用户将注销 我怀疑这可能与django的XSS保护有关。当用户离开我们的网站登录Facebook时,我如何使用户信息

当用户访问我的域时,django会发布sessionid。当他试图在Facebook上运行Oauth时,他点击了我网站上的一个按钮,该按钮会重定向到Facebook.com。Facebook重定向回我的域,但此时,用户的会话丢失,Django似乎正在发布一个新的会话变量

我希望删除的会话保持不变,因为我必须将访问我网站的访问者与其Facebook帐户相关联,但当会话被删除时,登录的用户将注销


我怀疑这可能与django的XSS保护有关。当用户离开我们的网站登录Facebook时,我如何使用户信息持久化

创建cookie时,您可能需要确认cookie具有相同的域。这有时会引起问题。如果您要访问www.example.com网站,OAuth回调指向example.com,那么您可能有两个单独的cookie,一个用于www.example.com,另一个用于example.com

在浏览器上打开“始终询问”,并注意cookie的详细信息。确保“主机:”字段的值两次都相同


修复程序正在您的
settings.py
文件中为
SESSION\u COOKIE\u DOMAIN
输入类似
.example.com
的内容。

我还发现,如果您在同一个域上运行两个Django应用程序,为避免cookie冲突,您可能希望为每个会话设置不同的cookie名称。

您的问题与此有关吗?此外,定义会话将被删除。“用户”是否仍有其cookie?会话被删除意味着原始会话id cookie被删除并替换为新会话id cookie。谢谢你的链接,它似乎表明当用户访问新站点并返回原始域时,会话不应被删除。我尝试了你的建议,看起来问题已经解决了,谢谢!这件事已经拖了2个小时了。谢谢你的解决方案!这发生在我身上,因为我从
localhost
开始,然后又回到
127.0.0.1