Skip to main content

sessions for aiohttp.web

Project description

aiohttp_session

The library provides sessions for aiohttp.web.

Usage

The library allows to store user-specific data into session object.

The session object has dict-like interface (operations like session[key] = value, value = session[key] etc. are present).

Before processing session in web-handler you have to register session middleware in aiohttp.web.Application.

A trivial usage example:

import asycio
import time
from aiohttp import web
import aiohttp_session

@asyncio.coroutine
def handler(request):
    session = yield from aiohttp_session.get_session(request)
    session['last_visit'] = time.time()
    return web.Response('OK')

app = web.Application(middlewares=[aiohttp_session.session_middleware(
    aiohttp_session.EncryptedCookieStorage(b'Sixteen byte key'))])

app.router.add_route('GET', '/', handler)

All storages uses HTTP Cookie named AIOHTTP_COOKIE_SESSION for storing data.

Available session storages are:

  • aiohttp_session.SimpleCookieStorage() – keeps session data as plain JSON string in cookie body. Use the storage only for testing purposes, it’s very non-secure.

  • aiohttp_session.cookie_storage.EncryptedCookieStorage(secret_key) – stores session data into cookies as SimpleCookieStorage but encodes it via AES cipher. secrect_key is a bytes key for AES encryption/decryption, the length should be 16 bytes.

    Requires PyCrypto library:

    $ pip install aiohttp_session[pycrypto]
    
  • aiohttp_session.redis_storage.RedisStorage(redis_pool) – stores JSON-ed data into redis, keepeng into cookie only redis key (random UUID). redis_pool is aioredis pool object, created by yield from aioredis.create_pool(...) call.

    Requires aioredis library:

    $ pip install aiohttp_session[aioredis]
    

License

aiohttp_session is offered under the Apache 2 license.

Changes

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 aiohttp-session, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size aiohttp_session-0.1.1-py3-none-any.whl (7.4 kB) File type Wheel Python version 3.4 Upload date Hashes View hashes
Filename, size aiohttp_session-0.1.1.tar.gz (4.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page