File Coverage

blib/lib/Mojolicious/Sessions/ThreeS/State/Cookie.pm
Criterion Covered Total %
statement 8 8 100.0
branch 1 2 50.0
condition 1 2 50.0
subroutine 3 3 100.0
pod 2 2 100.0
total 15 17 88.2


line stmt bran cond sub pod time code
1             package Mojolicious::Sessions::ThreeS::State::Cookie;
2             $Mojolicious::Sessions::ThreeS::State::Cookie::VERSION = '0.003';
3 2     2   53248 use Mojo::Base qw/Mojolicious::Sessions::ThreeS::State/;
  2         3  
  2         25  
4              
5             =head1 NAME
6              
7             Mojolicious::Sessions::ThreeS::State::Cookie - A cookie based session ID manager
8              
9             =cut
10              
11             has 'cookie_domain';
12             has 'cookie_name' => 'sessions3sid';
13             has 'cookie_path' => '/';
14              
15             has 'http_only' => 1;
16             has 'secure';
17              
18             =head2 cookie_domain
19              
20             =head2 cookie_name
21              
22             Defaults to C
23              
24             =head2 cookie_path
25              
26             Defaults to C
27              
28             =head2 http_only
29              
30             Defautls to C<1>
31              
32             =head2 secure
33              
34             Defaults to C
35              
36             =head2 get_session_id
37              
38             See L
39              
40             =cut
41              
42             sub get_session_id{
43 32     32 1 131 my ($self, $controller) = @_;
44 32         56 return $controller->signed_cookie( $self->cookie_name() );
45             }
46              
47             =head2 set_session_id
48              
49             See L
50              
51             =cut
52              
53             sub set_session_id{
54 14     14 1 88 my ( $self, $controller, $session_id , $opts ) = @_;
55 14   50     28 $opts //= {};
56             $controller->signed_cookie(
57             $self->cookie_name,
58             $session_id,
59             {
60             domain => scalar( $self->cookie_domain ),
61 14 50       24 ( $opts->{expires} ? ( expires => $opts->{expires} ) : () ),
62             httponly => $self->http_only,
63             path => $self->cookie_path(),
64             secure => $self->secure()
65             }
66             );
67             }
68              
69              
70             1;