jaguar_session 0.9.0
jaguar_session: ^0.9.0 copied to clipboard
Session management interceptors and utilities for Jaguar web framework
jaguar_session #
Session management interceptors and utilities for Jaguar web framework
Session #
Session provides a way to store data about a particular set of requests and share that data across those requests. Typical use cases are:
- Store items added to shopping cart in retail application
- Store information about user logged-in to the application
Session data consists of key-value string pairs.
Session storage #
On HTTP request #
The session data can either be stored in request cookies or headers itself. This is simpler to get going and doesn't need any backend database.
On the server #
Alternatively, session identifier can be stored on request cookies or headers, while the actual session data is stored in Dart Map or a database (ex: MongoDb, PostgreSQL, Reddis, etc).
SessionManager #
SessionManager is responsible for:
- Parsing session identifier & information from the HTTP request
- Writing session identifier & information to HTTP response
- Loading and storing session data from session store
Parsing and writing response #
Parsing #
parseRequest parses the request and obtains the session information provided the Request object. Usually called
before route handler execution, authenticator and authorizer, so that parsed data is available for further use.
Writing response #
writeResponse writes session information to the provided Response object. Usually called at the end of the route
chain.
Managing session #
This section explains how to create, update and delete a session.
Creating session #
createSession creates a new session with given session data. Might delete the existing session if it had any.
Update session #
updateSession updates the existing session by adding the provided key-value pair to the output session information.
Delete session #
deleteSession deletes the existing session.
Accessing session values #
InValue #
InValues are read-only key-value session data that are parsed from the request. InValues can be accessed using
getInValue method or inValues member.
Out value #
OutValues is the new session data that will be written to the response. OutValues can be accessed using outValues
member.
Session managers #
CookieSession #
Cookie based session manager. This session manager stores all session data on a Cookie.
cookieNameName of the Cookie on which the session data is stored.
JwtCookieSession #
JWT based session manager with Cookie as transport mechanism. This session manager stores all session as JWT token on a Cookie.
cookieNameName of the Cookie on which the session data is stored.authenticationConfAuthentication configuration to issue JWT tokenauthorizationConfAuthorization configuration to authorize and decode JWT token
JwtAuthHeaderSession #
JWT based session manager with authorization header as transport mechanism. This session manager stores all session as
JWT token on authorization header.
authenticationConfAuthentication configuration to issue JWT tokenauthorizationConfAuthorization configuration to authorize and decode JWT token