add CHI store
[catagits/Web-Session.git] / lib / Plack / Session / State / Cookie.pm
CommitLineData
bd992981 1package Plack::Session::State::Cookie;
2use strict;
3use warnings;
4
5use parent 'Plack::Session::State';
6
7use Plack::Util::Accessor qw[ path domain expires secure ];
8
9sub expire_session_id {
10 my ($self, $id) = @_;
11 $self->SUPER::expire_session_id( $id );
12 $self->expires( 0 );
13}
14
15sub extract {
16 my ($self, $request) = @_;
17 $self->check_expired( ( $request->cookie( $self->session_key ) || return )->value );
18}
19
20sub finalize {
21 my ($self, $id, $response) = @_;
22 $response->cookies->{ $self->session_key } = +{
23 value => $id,
24 path => ($self->path || '/'),
25 ( $self->domain ? ( domain => $self->domain ) : () ),
26 ( $self->expires ? ( expires => $self->expires ) : () ),
27 ( $self->secure ? ( secure => $self->secure ) : () ),
28 };
29}
30
fe1bfe7d 311;