Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

A server-side secure sessions plugin for Sanic

Project description

Gotta get your sessions fast!

Cookie-based sessions are still a common way to track users's sessions.
Flask and Django have really good support for server-side sessions, but not Sanic yet.
So `sanic-secure-session` is an attempt to create a simple yet enough secure session support for Sanic.

* Server-side sessions (currently only Redis backend implemented)
* Signed session cookie (sure, using `itsdangerous`)
* Easily extensible backends (only serialization and storage-related logic there)

## Usage example

from datetime import timedelta

import asyncio_redis
from sanic import Sanic
from sanic.response import text

from sanic_secure_session import SanicSession
from sanic_secure_session.backends.redis import RedisStorageBackend

class RedisPool:
A simple wrapper class that allows you to share a connection
pool across your application.
_pool = None

async def get_pool(self):
if not self._pool:
self._pool = await asyncio_redis.Pool.create(
host='localhost', port=6379, poolsize=10

return self._pool

redis_pool = RedisPool()

storage_backend = RedisStorageBackend(redis_connection=redis_pool.get_pool)

app = Sanic()
SanicSession(app, secret_key='aeNgaif6Ieyishoh', storage_backend=storage_backend,
ttl=timedelta(minutes=1), http_only=True, secure=True)

async def index(request):
# interact with the session like a normal dict
if not request['session'].get('foo'):
request['session']['foo'] = 0

request['session']['foo'] += 1

return text({
'cookies': request.cookies,
'session': request['session']

if __name__ == "__main__":"", port=8000, debug=True)


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sanic-secure-session, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size sanic_secure_session-0.2.1-py2.py3-none-any.whl (5.5 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size sanic-secure-session-0.2.1.tar.gz (4.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page