NAME
Apache2::WebApp::Plugin::Session - Plugin providing session handling methods
SYNOPSIS
my $obj = $c->plugin('Session')->method( ... ); # Apache2::WebApp::Plugin::Session->method()
or
$c->plugin('Session')->method( ... );
DESCRIPTION
An abstract class that provides common methods for managing session data across servers, within a database, or local file.
PREREQUISITES
This package is part of a larger distribution and was NOT intended to be used directly. In order for this plugin to work properly, the following packages must be installed:
Apache2::WebApp
Apache2::WebApp::Plugin::Cookie
Apache::Session
Params::Validate
Switch
INSTALLATION
From source:
$ tar xfz Apache2-WebApp-Plugin-Session-0.X.X.tar.gz
$ perl MakeFile.PL PREFIX=~/path/to/custom/dir LIB=~/path/to/custom/lib
$ make
$ make test <--- Make sure you do this before contacting me
$ make install
Perl one liner using CPAN.pm:
perl -MCPAN -e 'install Apache2::WebApp::Plugin::Session'
Use of CPAN.pm in interactive mode:
$> perl -MCPAN -e shell
cpan> install Apache2::WebApp::Plugin::Session
cpan> quit
Just like the manual installation of Perl modules, the user may need root access during this process to insure write permission is allowed within the installation directory.
CONFIGURATION
Unless it already exists, add the following to your projects webapp.conf
[session]
storage_type = file # options - file | mysql | memcached
expires = 1h # default 24h
OBJECT METHODS
create
Create a new session.
By default, when a new session is created, a browser cookie is set that contains a session_id
. Upon success, this session identifier is returned, which can to be used to set a customized session cookie.
my $session_id = $c->plugin('Session')->create( $c, 'login',
{
username => 'foo',
password => 'bar',
}
);
get
Return session data as a hash reference.
my $data_ref = $c->plugin('Session')->get( $c, 'login' );
print $data_ref->{username}; # foo is the value
update
Update existing session data.
$c->plugin('Session')->update( $c, 'login',
{
last_login => localtime(time),
remember => 1,
}
);
delete
Delete an existing session.
$c->plugin('Session')->delete( $c, 'login' );
EXAMPLE
package Example;
sub _default {
my ( $self, $c ) = @_;
$c->plugin('Session')->create( $c, 'login',
{
username => 'foo',
password => 'bar',
}
);
$c->plugin('CGI')->redirect( $c, "/app/example/verify" );
}
sub verify {
my ( $self, $c ) = @_;
my %session = $c->plugin('Session')->get( $c, 'login' );
$c->request->content_type('text/html');
print $session{username} . ' - ' . $session{password};
}
1;
SEE ALSO
Apache2::WebApp, Apache2::WebApp::Plugin, Apache2::WebApp::Plugin::Cookie, Apache::Session
AUTHOR
Marc S. Brooks, <mbrooks@cpan.org> - http://mbrooks.info
COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.