Skip to main content

Server-Side Sessions for Flask implemented as a SessionInterface.

Project description

Flask-SSS

Server-Side Sessions for Flask implemented as a SessionInterface.

## Data model

The user_id field allows for users to either list their open sessions and close other sessions they have open. It also enables administrators to log out all sessions for a user that needs to be suspended or deleted.

## Usage

from flask import Flask
from flask_sss import SQLAlchemySessionInterface
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, String, DateTime, Text
from datetime import datetime
import uuid

app = Flask(__name__)
db = SQLAlchemy(app)

class UserSession(db.Model):
    __tablename__ = "user_session"

    id = Column(String(length=255), primary_key=True)
    session_id = Column(String(length=255), unique=True)
    user_id = Column(String(length=255), nullable=True)
    created_at = Column(DateTime(), nullable=False, default=datetime.utcnow)
    updated_at = Column(DateTime(), nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
    expires_at = Column(DateTime(), nullable=False)
    data = Column(Text(), nullable=False)

def make_id():
    return str(uuid.uuid4())

app.session_interface = SQLAlchemySessionInterface(
    orm_session=db.session,
    sql_session_model=UserSession,
    make_id=make_id
)

Notes

A daily process to remove expired sessions is recommended to stop the session list expanding over time.

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

Flask-SSS-0.1.0.tar.gz (3.9 kB view details)

Uploaded Source

File details

Details for the file Flask-SSS-0.1.0.tar.gz.

File metadata

  • Download URL: Flask-SSS-0.1.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

File hashes

Hashes for Flask-SSS-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a5b5bff2fdaa7648622afd291b60013b441a81a97876c9889760a5a0e9d04e1e
MD5 1f0aab35f65e7d55e065419bc39a3029
BLAKE2b-256 5319d48f5095c666b41ff7a7da040a91bce8fa339021350ed4949c4b69818055

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