繁体   English   中英

Python Django会话返回“无”

[英]Python Django session returns “None”

tl; dr:Python新手,Django的会话在使用HTTPS时没有正确传播


我正在构建一个基本的Web服务,它依靠会话/ cookie来验证用户。

在第一次身份验证期间,我配置了这样的特定会话:

request.session['userSecureId'] = "blabla"
return HttpResponseRedirect('http://localhost/secure',context)

此时,django_session表中添加了一个新的会话密钥。 session_data字段上的基本b64解码确认是否存在'userSecureId'

在我看来,我检查这个会话是否像这样存在:

if request.session.get('userSecureId'):
    # do something

如果我在我的本地系统(普通HTTP)上尝试这个,它的效果很好。 所以我的下一步是在启用了SSL的远程服务器上运行它。 我在settings.py上配置了SESSION_COOKIE_SECURE = True ,但现在'userSecureId'返回的值始终为None。

这可能是一个新手问题,所以任何指针都会被赞赏=)

另外,如果我打印request.session.session_key我能够成功检索会话密钥,这意味着Django正确检测到我的sessionid cookie,但无法解码session_value的内容

编辑 :我刚尝试访问我的远程系统上的Django(相同的配置),我面临同样的问题。 我不知道为什么我不能运行会话值。 但代码使用127.0.0.1 w / o问题

根据这里这里

要在HTTP和HTTPS(以及跨域)之间共享会话,您应在设置中设置SESSION_COOKIE_DOMAIN

SESSION_COOKIE_DOMAIN = '.example.com'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM