我正在localhost上开发一个cherrypy应用程序,并写下这个以确定会话的进展情况。
import cherrypy
class WhyNotSessions(object):
@cherrypy.expose
def index(self):
if 'count' not in cherrypy.session:
cherrypy.session['count'] = 0
cherrypy.session['count'] += 1
return "Session count is %s" % cherrypy.session.get('count')
if __name__ == '__main__':
conf = {
'/': {
'tools.sessions.on': True,
'tools.sessions.secure': True
}
}
cherrypy.quickstart(WhyNotSessions(), '/', conf)
只要我从count
注释掉'tools.sessions.secure': True
,这会按预期工作,重新加载conf
递增。我想更好地了解这里发生了什么,因为我打算在生产中使用安全会话。
答案 0 :(得分:0)
我偶然发现了同样的问题。
这是因为设置' tools.sessions.secure' to True添加了“安全”功能。标记存储会话ID的生成的cookie。
如果您没有在CherryPy中使用HTTPS,则此cookie将永远不会在任何后续请求中返回,因此每次都会生成一个新的会话ID。
在CherryPy中启用HTTPS可以解决问题。有关如何启用此功能,请参阅CherryPy documentation on SSL。