NAME
Dancer::Session::Abstract - abstract class for session engine
SPEC
- role
-
A Dancer::Session object represents a session engine and should provide anything needed to manipulate a session, whatever its storing engine is.
- id
-
The session id will be written to a cookie, by default named
dancer.session
, it is assumed that a client must accept cookies to be able to use a session-aware Dancer webapp. (The cookie name can be change using thesession_name
config setting.) - storage engine
-
When the session engine is enabled, a before filter takes care to initialize the appropriate session engine (according to the setting
session
).Then, the filter looks for a cookie named
dancer.session
(or whatever you've set thessesion_name
setting to, if you've used it) in order to retrieve the current session object. If not found, a new session object is created and its id written to the cookie.Whenever a session call is made within a route handler, the singleton representing the current session object is modified.
After terminating the request, a flush is made to the session object.
DESCRIPTION
This virtual class describes how to build a session engine for Dancer. This is done in order to allow multiple session storage backends with a common interface.
Any session engine must inherit from Dancer::Session::Abstract and implement the following abstract methods.
Configuration
These settings control how a session acts.
session_name
The default session name is "dancer_session". This can be set in your config file:
setting session_name: "mydancer_session"
session_secure
The user's session id is stored in a cookie. If true, this cookie will be made "secure" meaning it will only be served over https.
session_expires
When the session should expire. The format is either the number of seconds in the future, or the human readable offset from "expires" in Dancer::Cookie.
By default, there is no expiration.
session_is_http_only
This setting defaults to 1 and instructs the session cookie to be created with the HttpOnly
option active, meaning that JavaScript will not be able to access to its value.
Abstract Methods
- retrieve($id)
-
Look for a session with the given id, return the session object if found, undef if not.
- create()
-
Create a new session, return the session object.
- flush()
-
Write the session object to the storage engine.
- destroy()
-
Remove the current session object from the storage engine.
- session_name (optional)
-
Returns a string with the name of cookie used for storing the session ID.
You should probably not override this; the user can control the cookie name using the
session_name
setting.
Inherited Methods
The following methods are not supposed to be overloaded, they are generic and should be OK for each session engine.
- build_id
-
Build a new uniq id.
- read_session_id
-
Reads the
dancer.session
cookie. - write_session_id
-
Write the current session id to the
dancer.session
cookie.