DESCRIPTION

This is a Plack Middleware component for session management. By default it will use cookies to keep session state and store data in memory. This distribution also comes with other state and store solutions. See perldoc for these backends how to use them.

It should be noted that we store the current session as a hash reference in the psgix.session key inside the $env where you can access it as needed.

NOTE: As of version 0.04 the session is stored in psgix.session instead of plack.session.

PLACK REQUEST OPTIONS

In addition to providing a psgix.session key in $env for persistent session information, this module also provides a psgix.session.options key which can be used to control the behavior of the module per-request. The following sub-keys exist:

If set to a true value, expunges the session from the store, and clears the state in the client.

no_store

If set to a true value, no changes made to the session in this request will be saved to the store. Either "expire" and /change_id take precedence over this, as both need to update the session store.

late_store

If set to a true value, the session will be saved at the end of the request, after all data has been sent to the client -- this may be required if streaming responses attempt to alter the session after the header has already been sent to the client. Note, however, that it introduces a possible race condition, where the server attempts to store the updated session before the client makes the next request. For redirects, or other responses on which the client needs do minimal processing before making a second request, this race is quite possible to win -- causing the second request to obtain stale session data.

id

This key contains the session identifier of the session. It should be considered read-only; to generate a new identifier, use "change_id".

BUGS

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.