Skip to main content

Signed & trusted sessions for falcon.

Project description

Falcon signed sessions

This project allows you to easily add trusted cookies to falcon, it works by storing a signed cookie in the client's browser using itsdangerous what we call a session. If the cookie is edited the data won't be loaded into the session context. If you don't store the secret key & salt somewhere secure (like a env file) then the session data will be invalidated between restarts.

How it works

  • Use req.context.get_session(key) to read session data, None if doesn't exist.
  • Use req.context.sessions() to read all sessions.
  • Use resp.context.set_session(key, value) to edit session data & sign for client.

Install

pip3 install FalconSignedSessions

How to use

import secrets
from FalconSignedSessions import SignedSessions


app = falcon.App()
app.add_middleware(
    SignedSessions(
        secret_key=secrets.token_urlsafe(24),
        salt=secrets.token_bytes(),
        session_cookie="session"
    )
)


class SessionResource:
    def on_get(self, req: Request, resp: Response) -> None:
        # Get all sessions as dict.
        print(req.context.sessions())

        # Used to get a session
        print(req.context.get_session("trusted"))

        # Set a session.
        resp.context.set_session("trusted", True)


app.add_route("/cookies", SessionResource())

Project details


Download files

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

Source Distribution

FalconSignedSessions-0.0.3.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

FalconSignedSessions-0.0.3-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file FalconSignedSessions-0.0.3.tar.gz.

File metadata

  • Download URL: FalconSignedSessions-0.0.3.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for FalconSignedSessions-0.0.3.tar.gz
Algorithm Hash digest
SHA256 cba5c006d423c3ef475ef568cb4c36c25546ecdcce6ef6923df302ca79349f3c
MD5 2628b3838e27207fa17abeb0f402ff3c
BLAKE2b-256 71d2795d72a1536552fe9490918067ae734ce35f969f57e41a007c509dd3eb0f

See more details on using hashes here.

File details

Details for the file FalconSignedSessions-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: FalconSignedSessions-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for FalconSignedSessions-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 080e8b5a8950aa6294498e95d180300093baf4b2eed477a88bfadca4de9cd0f3
MD5 cc324b6588f2bb3c2e93aa1b2660c2b8
BLAKE2b-256 4753b2025224196897feb9eceb2878dca4f29b72fca2a52cb874ec7bce3b109f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page