Plack-Middleware-Session

 view release on metacpan or  search on metacpan

lib/Plack/Session/State.pm  view on Meta::CPAN


sub new {
    my ($class, %params) = @_;

    $params{'session_key'}   ||= 'plack_session';
    $params{'sid_generator'} ||= sub {
        Digest::SHA::sha1_hex(rand() . $$ . {} . time)
    };
    $params{'sid_validator'} ||= qr/\A[0-9a-f]{40}\Z/;

    bless { %params } => $class;
}

sub expire_session_id {
    my ($self, $id, $res) = @_;
}

sub validate_session_id {
    my ($self, $id) = @_;
    $id =~ $self->sid_validator;
}

lib/Plack/Session/Store.pm  view on Meta::CPAN

use warnings;

our $VERSION   = '0.34';
our $AUTHORITY = 'cpan:STEVAN';

use Plack::Util::Accessor qw[ _stash ];

sub new {
    my ($class, %params) = @_;
    $params{'_stash'} ||= +{};
    bless { %params } => $class;
}

sub fetch {
    my ($self, $session_id) = @_;
    $self->_stash->{ $session_id };
}

sub store {
    my ($self, $session_id, $session) = @_;
    $self->_stash->{ $session_id } = $session;

lib/Plack/Session/Store/Cache.pm  view on Meta::CPAN


sub new {
    my ($class, %params) = @_;

    die('cache require get, set and remove method.')
        unless blessed $params{cache}
            && $params{cache}->can('get')
            && $params{cache}->can('set')
            && $params{cache}->can('remove');

    bless { %params } => $class;
}

sub fetch {
    my ($self, $session_id ) = @_;
    $self->cache->get($session_id);
}

sub store {
    my ($self, $session_id, $session) = @_;
    $self->cache->set($session_id => $session);

lib/Plack/Session/Store/File.pm  view on Meta::CPAN

    my ($class, %params) = @_;

    $params{'dir'} ||= $ENV{TMPDIR} || File::Spec->tmpdir;

    die "Storage directory (" . $params{'dir'} . ") is not writeable"
        unless -w $params{'dir'};

    $params{'serializer'}   ||= sub { Storable::lock_nstore( @_ ) };
    $params{'deserializer'} ||= sub { Storable::lock_retrieve( @_ ) };

    bless { %params } => $class;
}

sub fetch {
    my ($self, $session_id) = @_;

    my $file_path = $self->_get_session_file_path( $session_id );
    return unless -f $file_path;

    $self->deserializer->( $file_path );
}



( run in 0.364 second using v1.01-cache-2.11-cpan-65fba6d93b7 )