Sessions

Masonite comes with a simple way to store sessions. Masonite supports the following session drivers: Cookie and Redis.

Configuration

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

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.

Saving Session Data

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')

Flashing Data

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')

Retrieving Session Data

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')

Checking For Existence

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

Deleting Session Data

You can also delete a key from the session

from masonite.sessions import Session

def store(self, session: Session):
  session.delete('key')

Resetting the Session

You can reset all data in a session:

session.flush()

Last updated