Safe Haskell | None |
---|
Snap.Snaplet.Session
- data SessionManager = forall a . ISessionManager a => SessionManager a
- class ISessionManager r where
- withSession :: Lens b (Snaplet SessionManager) -> Handler b v a -> Handler b v a
- commitSession :: Handler b SessionManager ()
- setInSession :: Text -> Text -> Handler b SessionManager ()
- getFromSession :: Text -> Handler b SessionManager (Maybe Text)
- deleteFromSession :: Text -> Handler b SessionManager ()
- csrfToken :: Handler b SessionManager Text
- sessionToList :: Handler b SessionManager [(Text, Text)]
- resetSession :: Handler b SessionManager ()
- touchSession :: Handler b SessionManager ()
- module Snap.Snaplet.Session.Common
- type SecureCookie t = (UTCTime, t)
- getSecureCookie :: (MonadSnap m, Serialize t) => ByteString -> Key -> Maybe Int -> m (Maybe t)
- setSecureCookie :: (MonadSnap m, Serialize t) => ByteString -> Key -> Maybe Int -> t -> m ()
- checkTimeout :: MonadSnap m => Maybe Int -> UTCTime -> m Bool
Documentation
data SessionManager
Any Haskell record that is a member of the ISessionManager
typeclass
can be stuffed inside a SessionManager
to enable all session-related
functionality.
Constructors
forall a . ISessionManager a => SessionManager a |
class ISessionManager r where
Methods
Load a session from given payload.
Will always be called before any other operation. If possible, cache and do nothing when called multiple times within the same request cycle.
Commit session, return a possibly updated paylaod
Reset session
touch :: r -> r
Touch session
insert :: Text -> Text -> r -> r
Insert a key-value pair into session
lookup :: Text -> r -> Maybe Text
Lookup a key in session
Delete a key in session
Return a session-specific CSRF protection token. See mkCSRFToken
for
help in creating the value.
Return all key-value pairs as an association list
Instances
ISessionManager CookieSessionManager |
withSession :: Lens b (Snaplet SessionManager) -> Handler b v a -> Handler b v a
Wrap around a handler, committing any changes in the session at the end
commitSession :: Handler b SessionManager ()
Commit changes to session within the current request cycle
setInSession :: Text -> Text -> Handler b SessionManager ()
Set a key-value pair in the current session
getFromSession :: Text -> Handler b SessionManager (Maybe Text)
Get a key from the current session
deleteFromSession :: Text -> Handler b SessionManager ()
Remove a key from the current session
csrfToken :: Handler b SessionManager Text
Returns a CSRF Token unique to the current session
sessionToList :: Handler b SessionManager [(Text, Text)]
Return session contents as an association list
resetSession :: Handler b SessionManager ()
Deletes the session cookie, effectively resetting the session
touchSession :: Handler b SessionManager ()
Touch the session so the timeout gets refreshed
module Snap.Snaplet.Session.Common
type SecureCookie t = (UTCTime, t)
Arbitrary payload with timestamp.