Flask-KVSession is an MIT-licensed server-side session replacement for Flask's signed client-based session management. Instead of storing data on the client, only a securely generated ID is stored on the client, while the actual session data resides on the server.
This has two major advantages:
- Clients no longer see the session information
- It is possible to securely destroy sessions to protect against replay attacks.
Other things are possible with server side session that are impossible with clients side sessions, like inspecting and manipulating data in absence of the client.
Flask-KVSession uses the simplekv-package for storing session data on a variety of backends, including redis, memcached, SQL databases using SQLAlchemy, mongoDB or just flat files.
Integration with Flask is seamless, once the extension is loaded for a Flask application, it transparently replaces Flask's own Session management. Any application working with sessions should work the same with Flask-KVSession (if it does not, file a bug!).
Development happens on github, you can find the documentation on PyPI.