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.
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
|