cherrypy' tools.sessions.secure'似乎打破了会议

时间:2016-11-01 13:11:10

标签: python session cherrypy

我正在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递增。我想更好地了解这里发生了什么,因为我打算在生产中使用安全会话。

1 个答案:

答案 0 :(得分:0)

我偶然发现了同样的问题。

这是因为设置' tools.sessions.secure' to True添加了“安全”功能。标记存储会话ID的生成的cookie。

如果您没有在CherryPy中使用HTTPS,则此cookie将永远不会在任何后续请求中返回,因此每次都会生成一个新的会话ID。

在CherryPy中启用HTTPS可以解决问题。有关如何启用此功能,请参阅CherryPy documentation on SSL