Apache2::WebApp::Plugin::Session - Plugin providing session handling methods


Apache2-WebApp-Plugin-Session documentation  | view source Contained in the Apache2-WebApp-Plugin-Session distribution.

Index


NAME

Top

Apache2::WebApp::Plugin::Session - Plugin providing session handling methods

SYNOPSIS

Top

  my $obj = $c->plugin('Session')->method( ... );     # Apache2::WebApp::Plugin::Session->method()

    or

  $c->plugin('Session')->method( ... );

DESCRIPTION

Top

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.

PREREQUISITES

Top

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

Top

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.

CONFIGURATION

Top

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

Top

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 also be used to set a customized session cookie.

  my $session_id = $c->plugin('Session')->create( $c, 'login',
      {
          username => 'foo',
          password => 'bar',
      }
    );

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'

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,
      }
    );

delete

Takes the cookie unique identifier or session id as arguments. Deletes an existing session.

  $c->plugin('Session')->delete( $c, 'login' );

id

Return the cookie unique identifier for a given session.

  my $session_id = $c->plugin('Session')->id( $c, 'login' );

EXAMPLE

Top

  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;

SEE ALSO

Top

Apache2::WebApp, Apache2::WebApp::Plugin, Apache2::WebApp::Plugin::Cookie, Apache::Session

AUTHOR

Top

Marc S. Brooks, <mbrooks@cpan.org> - http://mbrooks.info

COPYRIGHT

Top


Apache2-WebApp-Plugin-Session documentation  | view source Contained in the Apache2-WebApp-Plugin-Session distribution.