Commit | Line | Data |
95c6f6e8 |
1 | #!/usr/bin/perl |
2 | |
3 | package SessionTestApp; |
4 | use Catalyst ( # |
5 | 'SessionHP', # |
6 | 'Session::Store::Dummy', # |
7 | 'SessionHP::State::Cookie' |
8 | ); |
9 | |
10 | use strict; |
11 | use warnings; |
12 | |
13 | my $max_lifetime = 6; |
14 | my $min_lifetime = 3; |
15 | |
16 | __PACKAGE__->config( |
17 | session => { |
18 | max_lifetime => $max_lifetime, |
19 | min_lifetime => $min_lifetime, |
20 | } |
21 | ); |
22 | |
23 | sub login : Global { |
24 | my ( $self, $c ) = @_; |
25 | $c->session->{logged_in} = 1; |
26 | $c->res->output("logged in"); |
27 | } |
28 | |
29 | sub logout : Global { |
30 | my ( $self, $c ) = @_; |
31 | $c->res->output( |
32 | "logged out after " . $c->session->{counter} . " requests" ); |
33 | $c->delete_session("logout"); |
34 | } |
35 | |
36 | sub page : Global { |
37 | my ( $self, $c ) = @_; |
38 | if ( $c->session->{logged_in} ) { |
39 | $c->res->output( |
40 | "you are logged in, session expires at " . $c->session_expires ); |
41 | $c->session->{counter}++; |
42 | } else { |
43 | $c->res->output("please login"); |
44 | } |
45 | } |
46 | |
47 | # This action inspects the session which will cause it to be auto_vivified into |
48 | # a hash. However we should not create a session because of this. |
49 | sub inspect_session : Global { |
50 | my ( $self, $c ) = @_; |
51 | |
52 | my $logged_in = $c->session->{logged_in}; |
53 | $logged_in = 'undef' if !defined $logged_in; |
54 | |
55 | $c->res->output("value of logged_in is '$logged_in'"); |
56 | } |
57 | |
58 | __PACKAGE__->setup; |
59 | |
60 | __PACKAGE__; |
61 | |