class SessionInterface:
Known subclasses: flask.sessions.SecureCookieSessionInterface
The basic interface you have to implement in order to replace the
default session interface which uses werkzeug's securecookie
implementation. The only methods you have to implement are
open_session
and save_session
, the others have
useful defaults which you don't need to change.
The session object returned by the open_session
method has to
provide a dictionary like interface plus the properties and methods
from the SessionMixin
. We recommend just subclassing a dict
and adding that mixin:
class Session(dict, SessionMixin): pass
If open_session
returns None Flask will call into
make_null_session
to create a session that acts as replacement
if the session support cannot work because some requirement is not
fulfilled. The default NullSession
class that is created
will complain that the secret key was not set.
To replace the session interface on an application all you have to do
is to assign flask.Flask.session_interface
:
app = Flask(__name__) app.session_interface = MySessionInterface()
Method | get_cookie_domain |
Returns the domain that should be set for the session cookie. |
Method | get_cookie_httponly |
Returns True if the session cookie should be httponly. This currently just returns the value of the SESSION_COOKIE_HTTPONLY config var. |
Method | get_cookie_name |
Returns the name of the session cookie. |
Method | get_cookie_path |
No summary |
Method | get_cookie_samesite |
Return 'Strict' or 'Lax' if the cookie should use the SameSite attribute. This currently just returns the value of the SESSION_COOKIE_SAMESITE setting. |
Method | get_cookie_secure |
Returns True if the cookie should be secure. This currently just returns the value of the SESSION_COOKIE_SECURE setting. |
Method | get_expiration_time |
No summary |
Method | is_null_session |
Checks if a given object is a null session. Null sessions are not asked to be saved. |
Method | make_null_session |
No summary |
Method | open_session |
No summary |
Method | save_session |
No summary |
Method | should_set_cookie |
No summary |
Class Variable | pickle_based |
Undocumented |
Returns the domain that should be set for the session cookie.
Uses SESSION_COOKIE_DOMAIN if it is configured, otherwise falls back to detecting the domain based on SERVER_NAME.
Once detected (or if not set at all), SESSION_COOKIE_DOMAIN is updated to avoid re-running the logic.
Parameters | |
app:Flask | Undocumented |
Returns | |
t.Optional[ | Undocumented |
Parameters | |
app:Flask | Undocumented |
Returns | |
bool | Undocumented |
Returns the name of the session cookie.
Uses app.session_cookie_name which is set to SESSION_COOKIE_NAME
Parameters | |
app:Flask | Undocumented |
Returns | |
str | Undocumented |
Parameters | |
app:Flask | Undocumented |
Returns | |
str | Undocumented |
SESSION_COOKIE_SAMESITE
setting.Parameters | |
app:Flask | Undocumented |
Returns | |
str | Undocumented |
Parameters | |
app:Flask | Undocumented |
Returns | |
bool | Undocumented |
Parameters | |
app:Flask | Undocumented |
session:SessionMixin | Undocumented |
Returns | |
t.Optional[ | Undocumented |
Checks if a given object is a null session. Null sessions are not asked to be saved.
This checks if the object is an instance of null_session_class
by default.
Parameters | |
obj:object | Undocumented |
Returns | |
bool | Undocumented |
Creates a null session which acts as a replacement object if the real session support could not be loaded due to a configuration error. This mainly aids the user experience because the job of the null session is to still support lookup without complaining but modifications are answered with a helpful error message of what failed.
This creates an instance of null_session_class
by default.
Parameters | |
app:Flask | Undocumented |
Returns | |
NullSession | Undocumented |
flask.sessions.SecureCookieSessionInterface
SessionMixin
.Parameters | |
app:Flask | Undocumented |
request:Request | Undocumented |
Returns | |
t.Optional[ | Undocumented |
flask.sessions.SecureCookieSessionInterface
open_session
at the end of the request. This is still called during a request
context so if you absolutely need access to the request you can do
that.Parameters | |
app:Flask | Undocumented |
session:SessionMixin | Undocumented |
response:Response | Undocumented |
Used by session backends to determine if a Set-Cookie header should be set for this session cookie for this response. If the session has been modified, the cookie is set. If the session is permanent and the SESSION_REFRESH_EACH_REQUEST config is true, the cookie is always set.
This check is usually skipped if the session was deleted.
Parameters | |
app:Flask | Undocumented |
session:SessionMixin | Undocumented |
Returns | |
bool | Undocumented |