Sessions
Session configuration is located at
config/session.py
file. In this file, you can configure which driver to use.Masonite is configured to use the Cookie session driver by default, named
cookie
.config/session.py
DRIVERS = {
"default": "cookie",
"cookie": {},
"redis": {
"host": "127.0.0.1",
"port": 6379,
"password": "",
"options": {"db": 1}, # redis module driver specific options
"timeout": 60 * 60,
"namespace": "masonite4",
},
}
Cookie driver will store all session data in the users cookies. It can be used as is.
Redis driver is requiring the
redis
python package, that you can install with:pip install redis
Then you should define Redis as default driver and configure it with your Redis server parameters:
DRIVERS = {
"default": "redis",
"redis": {
"host": "127.0.0.1",
"port": 6379,
"password": "",
"options": {"db": 1}, # redis module driver specific options
"timeout": 60 * 60,
"namespace": "masonite4",
},
}
Finally ensure that the Redis server is running and you're ready to start using sessions.
To save session data you can simply "set" data into the session:
from masonite.sessions import Session
def store(self, session: Session):
data = session.set('key', 'value')
Flash data is data specific to the next request. This is useful for data such as error messages or alerts:
from masonite.sessions import Session
def store(self, session: Session):
data = session.flash('key', 'value')
To get back the session data you set you can simply using the "get" method:
from masonite.sessions import Session
def store(self, session: Session):
data = session.get('key')
You can check if a session has a specific key:
from masonite.sessions import Session
def store(self, session: Session):
if session.has('key'):
pass
You can also delete a key from the session
from masonite.sessions import Session
def store(self, session: Session):
session.delete('key')
You can reset all data in a session:
session.flush()
Last modified 7mo ago