Flask Multiple Sessions Interface (combine multiple sessions with different backends)
Project description
Flask Multiple Sessions Interface
combine multiple sessions with different backends
Install it with:
pip install flask-session-plus
For Flask Multi Session to work, all you have to do is define all your sessions on a simple configuration variable called SESSION_CONFIG
, and init the extension.
Session Configuration:
SESSION_CONFIG = [
{
'cookie_name': 'csrf',
'session_type': 'secure_cookie',
'session_fields': ['csrf_token'],
},
{
'cookie_name': 'session',
'session_type': 'firestore',
'session_fields': ['user_id', 'user_data'],
},
# ... as many sessions as you want
]
Caution: session_fields can collide if they have the same meaning (aka: value). If not, you must use different field names.
The above configuration will define two session interfaces. The first one is a secure cookie with 'csrf' name that will store the 'csrf_token' field.
The second one is a FirestoreSessionInterface that will set a cookie named 'session' with a single session id. The 'user_id' and 'user_data' will be stored in the Google Cloud Firestore backend.
Finally register it as an extension:
from flask_session_plus import Session
app = Flask(__name__)
Session(app)
or
from flask_session_plus import Session
app = Flask(__name__)
session = Session()
session.init_app(app)
All posible values for Session configuration:
-
Common properties for all backends:
Property name Required Default Description cookie_name
True
The name of the cookie to use. It also serves as a key for different sessions. session_type
False
secure_cookie
The session backend to use. session_fields
False
None
The fields that are owned by this session. It can be an array of fields to include or a dict with the keys 'include' or 'exclude', to include or exclude a list of fields. cookie_domain
False
The domain for the session cookie. If this is not set, the cookie will be valid for all subdomains of SERVER_NAME.. cookie_path
False
The path for the session cookie. If this is not set the cookie will be valid for all of APPLICATION_ROOT or if that is not set for '/'. cookie_httponly
False
True
Whether to allow access the cookie only over http or other ways (javascript). cookie_secure
False
False
Whether to serve this cookie over https only. cookie_max_age
False
None
The cookie expiration time in seconds. None means the cookie will expire at browser close. cookie_samesite
False
Lax
The cookie samesite configuration. session_lifetime
False
timedelta(days=1)
The duration for a valid session. Not used on SecureCookie backend.
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
Built Distribution
Hashes for flask_session_plus-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be5ff75b6283336878a2e5fd6d60b9421fe2b8e295a251490871d01a1eef5793 |
|
MD5 | 32177bc93f7786a9515503b4cedc04e4 |
|
BLAKE2b-256 | deba559abb77893f7df0f12f1d39a1deee144d967d0a4b5a2d35f94bf9991c93 |