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 Source
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 whereSource
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 session
insert :: Text -> Text -> r -> rSource
Insert a key-value pair into session
lookup :: Text -> r -> Maybe TextSource
Lookup a key in session
delete :: Text -> r -> rSource
Delete a key in session
Return a session-specific CSRF protection token. See mkCSRFToken
for
help in creating the value.
toList :: r -> [(Text, Text)]Source
Return all key-value pairs as an association list
Instances
ISessionManager CookieSessionManager |
withSession :: Lens b (Snaplet SessionManager) -> Handler b v a -> Handler b v aSource
Wrap around a handler, committing any changes in the session at the end
commitSession :: Handler b SessionManager ()Source
Commit changes to session within the current request cycle
setInSession :: Text -> Text -> Handler b SessionManager ()Source
Set a key-value pair in the current session
getFromSession :: Text -> Handler b SessionManager (Maybe Text)Source
Get a key from the current session
deleteFromSession :: Text -> Handler b SessionManager ()Source
Remove a key from the current session
csrfToken :: Handler b SessionManager TextSource
Returns a CSRF Token unique to the current session
sessionToList :: Handler b SessionManager [(Text, Text)]Source
Return session contents as an association list
resetSession :: Handler b SessionManager ()Source
Deletes the session cookie, effectively resetting the session
touchSession :: Handler b SessionManager ()Source
Touch the session so the timeout gets refreshed
module Snap.Snaplet.Session.Common
type SecureCookie t = (UTCTime, t)Source
Arbitrary payload with timestamp.