如何停止为每个呼叫重新生成cherrpy.session.id

时间:2014-01-13 20:51:34

标签: python session-cookies cherrypy

民间,

我正在运行CherryPy(版本3.2.4)服务器的一个实例,对于相同的端点,我打印cherrypy.request.cookie和cherrypy.session.id的值。接下来的4个电话:

 session_id=ed46544a403a633bc632a9d193a722a6e0cc9088 b0bb3aec2a5858cbd69e0d3933d2852e753725cd
 session_id=b0bb3aec2a5858cbd69e0d3933d2852e753725cd 069564740a1f38fdc8f4721ee759c3ff1f2a12d2
 session_id=069564740a1f38fdc8f4721ee759c3ff1f2a12d2 87cd7af0bd36ec9d9d4b6e6d74f28fb138ddacfc
 session_id=87cd7af0bd36ec9d9d4b6e6d74f28fb138ddacfc 8cbabaa63f09ce601611c4e7d7f9b28522f4d76f

如果你看到每个后续的调用,cherrypy.session.id会被重新编译并发送给客户端,它将作为cherrypy.request.cookie发送给下一个请求。这意味着,每次,我都会生成一个新的会话ID?我可以用什么方法来阻止它?

对于同一个用户,只要他不清除浏览器缓存,我想拥有相同的session_id吗?

请帮忙。

编辑:这是我的配置:

cherrypy.config.update({                 
    'tools.sessions.on':            True,
    'tools.sessions.timeout':       120  
})                                       

2 个答案:

答案 0 :(得分:2)

尝试...

    cherrypy.config.update({                 
    'tools.sessions.on':            True,
    'tools.sessions.timeout':       120,
    'tools.sessions.storage_type' : "file",  #or RAM
    'tools.sessions.storage_path' : "/home/site/sessions"
})     

http://cherrypy.readthedocs.org/en/latest/refman/lib/sessions.html

希望这有帮助!

答案 1 :(得分:1)

cherrypy.session['any_string'] = 'some_string'  意味着在会话中保存任何数据都可以解决问题。