Apache2-WebApp-Plugin-Session
view release on metacpan or search on metacpan
lib/Apache2/WebApp/Plugin/Session.pm view on Meta::CPAN
An abstract class that provides common methods for managing session data
across servers, within a database, or local file. Data persistence is
maintained between requests using web browser cookies.
=head1 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
=head1 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 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.
=head1 CONFIGURATION
Unless it already exists, add the following to your projects I<webapp.conf>
[session]
storage_type = file # options - file | mysql | memcached
expires = 1h # default 24h
=head1 OBJECT METHODS
=head2 create
Create a new session.
By default, when a new session is created, a browser cookie is set that contains
a C<session_id>. Upon success, this session identifier is returned, which can
also be used to set a customized session cookie.
my $session_id = $c->plugin('Session')->create($c, 'login',
{
username => 'foo',
password => 'bar',
}
);
=head2 get
Takes the cookie unique identifier or session id as arguments. Returns the
session data as a hash reference.
my $data_ref = $c->plugin('Session')->get($c, 'login');
print $data_ref->{username}; # outputs 'foo'
=head2 update
Takes the cookie unique identifier or session id as arguments. Updates
existing session data.
$c->plugin('Session')->update($c, 'login',
{
last_login => localtime(time),
remember => 1,
}
);
=head2 delete
Takes the cookie unique identifier or session id as arguments. Deletes an
existing session.
$c->plugin('Session')->delete($c, 'login');
=head2 id
Return the cookie unique identifier for a given session.
my $session_id = $c->plugin('Session')->id($c, 'login');
=head1 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 $data_ref = $c->plugin('Session')->get($c, 'login');
$c->request->content_type('text/html');
print $data_ref->{username} . '-' . $data_ref->{password}; # outputs 'foo-bar'
}
1;
=head1 SUPPORTED TYPES
Apache2::WebApp::Plugin::Session::File
Apache2::WebApp::Plugin::Session::Memcached
Apache2::WebApp::Plugin::Session::MySQL
=head1 SEE ALSO
L<Apache2::WebApp>, L<Apache2::WebApp::Plugin>, L<Apache2::WebApp::Plugin::Cookie>,
L<Apache::Session>
=head1 AUTHOR
Marc S. Brooks, E<lt>mbrooks@cpan.orgE<gt> - L<http://mbrooks.info>
=head1 COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See L<http://dev.perl.org/licenses/artistic.html>
=cut
( run in 1.118 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )