NAME

Catalyst::Plugin::Session::State::Stash - Maintain session IDs using the stash

VERSION

version 0.14

SYNOPSIS

use Catalyst qw/Session Session::State::Stash Session::Store::Foo/;

DESCRIPTION

An alternative state storage plugin that allows you some more flexibility in dealing with session storage. This plugin loads and saves the session ID from and to the stash.

METHODS

delete_session_id

Deletes the session. Unfortunately I've been unable to squash a bug that will stop you from opening a new session in the same execution, however. Patches welcome!

get_session_id

Gets the current session id.

set_session_id

Sets the session id to the shift.

get_session_expires

Gets when the current session expires.

set_session_expires

Sets how many seconds from now the session should expire.

EXTENDED METHODS

prepare_action

Loads the id off the stash.

setup_session

Defaults the stash_key parameter to _session.

CONFIGURATION

stash_key

The name of the hash key to use. Defaults to _session.

stash_delim

If present, splits stash_key at this character to nest. E.g. a delim of '/' and stash_key of '123/456' will store it as $c->stash->{123}->{456}

expires

How long the session should last in seconds.

For example, you could stick this in MyApp.pm:

__PACKAGE__->config( 'Plugin::Session' => {
   stash_key  => 'session_id',
});

BUGS

You can't delete a session then create a new one. If this is important to you, patches welcome!

CAVEATS

Manual work may be involved to make better use of this.

If you are writing a stateful web service with Catalyst::Plugin::Server::XMLRPC, you will probably only have to deal with loading, as when saving, the ID will already be on the stash.

SEE ALSO

Catalyst, Catalyst::Plugin::Session, Catalyst::Plugin::Session::State, Catalyst::Plugin::Session::State::Cookie (what you probably want).

AUTHOR

James Laver <perl -e 'printf qw/%s@%s.com cpan jameslaver/'>

CONTRIBUTORS

  • Florian Ragwitz <rafl@debian.org>

  • Karen Etheridge <ether@cpan.org>

  • Tomas Doran <bobtfish@bobtfish.net>

  • James Laver <jjl@baozi.local>

  • James Laver <james@jameslaver.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2009 by James Laver.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.