我有一个Flask应用程序,使用Nginx + WSGI(FastCGI和Gevent)并使用标准的Flask会话.我不使用session.permanent=True或任何其他额外选项,只需设置SECRET_KEY默认配置.
我不会在会话中保存任何(键,值)对,并且只依赖该SID = session['_id']条目来标识返回的用户.我使用以下代码阅读SID:
@page.route ('/')
def main (page='home', template='index.html'):
if not request.args.get ('silent', False):
print >> sys.stderr, "Session ID: %r" % session['_id']
Run Code Online (Sandbox Code Playgroud)
我做了以下观察:
SIDs- 这是预期的;SIDs- 预期;SID也一样- 也是预期的;现在,第(3)点很有意思,因为即使删除相应的cookie也SID保持不变!在某种程度上,即使这可能是可以理解的,但实际上我期望SID在不同的cookie之间进行更改.但我看到的唯一区别是
session.new is True
Run Code Online (Sandbox Code Playgroud)
对于第一个 cookie的删除后,立即请求.即使这是非常期待的; 但鉴于这些事实,我面临以下问题:
这是否意味着对于坐在同一 IP 后面的不同用户(使用相同的浏览器配置),我的后端会将它们误认为是同一个用户?
如果不是第(1)点,那么这些"粘性"会话的当前行为实际上非常令人愉快,因为这避免了我的用户可能因为删除了相应的cookie而丢失数据的情况.
他们仍然可以通过使用相同的浏览器从同一网络重新访问该站点来节省时间.我喜欢这样,但只有 …