macchiato.session.store
protocol for defining session storage engines.
SessionStore
protocol
An interface to a session storage engine. Implementing this protocol allows
session data to be stored in different places.
Session keys are exposed to end users via a cookie, and therefore must be
unguessable. A random UUID is a good choice for a session key.
Session stores should come with a mechanism for expiring old session data.
members
read-session
(read-session store key)
Read a session map from the store. If the key is not found, nil
is returned.
write-session
(write-session store key data)
Write a session map to the store. Returns the (possibly changed) key under
which the data was stored. If the key is nil, the session is considered
to be new, and a fresh key should be generated.
delete-session
(delete-session store key)
Delete a session map from the store, and returns the session key. If the
returned key is nil, the session cookie will be removed.