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
Release history Release notifications | RSS feed
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)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5b5bff2fdaa7648622afd291b60013b441a81a97876c9889760a5a0e9d04e1e |
|
MD5 | 1f0aab35f65e7d55e065419bc39a3029 |
|
BLAKE2b-256 | 5319d48f5095c666b41ff7a7da040a91bce8fa339021350ed4949c4b69818055 |