1Cookie::Baker(3pm)    User Contributed Perl Documentation   Cookie::Baker(3pm)
2
3
4

NAME

6       Cookie::Baker - Cookie string generator / parser
7

SYNOPSIS

9           use Cookie::Baker;
10
11           $headers->push_header('Set-Cookie', bake_cookie($key,$val));
12
13           my $cookies_hashref = crush_cookie($headers->header('Cookie'));
14

DESCRIPTION

16       Cookie::Baker provides simple cookie string generator and parser.
17

XS IMPLEMENTATION

19       This module tries to use Cookie::Baker::XS's crush_cookie by default.
20       If this fails, it will use Cookie::Baker's pure Perl crush_cookie.
21
22       There is no XS implementation of bake_cookie yet.
23

FUNCTION

25       bake_cookie
26             my $cookie = bake_cookie('foo','val');
27             my $cookie = bake_cookie('foo', {
28                 value => 'val',
29                 path => "test",
30                 domain => '.example.com',
31                 expires => '+24h'
32             } );
33
34           Generates a cookie string for an HTTP response header.  The first
35           argument is the cookie's name and the second argument is a plain
36           string or hash reference that can contain keys such as "value",
37           "domain", "expires", "path", "httponly", "secure", "max-age",
38           "samesite".
39
40           value
41               Cookie's value.
42
43           domain
44               Cookie's domain.
45
46           expires
47               Cookie's expires date time. Several formats are supported:
48
49                 expires => time + 24 * 60 * 60 # epoch time
50                 expires => 'Wed, 03-Nov-2010 20:54:16 GMT'
51                 expires => '+30s' # 30 seconds from now
52                 expires => '+10m' # ten minutes from now
53                 expires => '+1h'  # one hour from now
54                 expires => '-1d'  # yesterday (i.e. "ASAP!")
55                 expires => '+3M'  # in three months
56                 expires => '+10y' # in ten years time (60*60*24*365*10 seconds)
57                 expires => 'now'  #immediately
58
59           max-age
60               If defined, sets the max-age for the cookie.
61
62           path
63               Cookie's path.
64
65           httponly
66               If true, sets HttpOnly flag. false by default.
67
68           secure
69               If true, sets secure flag. false by default.
70
71           samesite
72               If defined as 'lax' or 'strict' or 'none' (case-insensitive),
73               sets the SameSite restriction for the cookie as described in
74               the draft proposal <https://tools.ietf.org/html/draft-west-
75               first-party-cookies-07>, which is already implemented in Chrome
76               (v51), Safari (v12), Edge (v16),  Opera (v38) and Firefox
77               (v60).
78
79       crush_cookie
80           Parses cookie string and returns a hashref.
81
82               my $cookies_hashref = crush_cookie($headers->header('Cookie'));
83               my $cookie_value = $cookies_hashref->{cookie_name}
84

SEE ALSO

86       CPAN already has many cookie related modules. But there is no simple
87       cookie string generator and parser module.
88
89       CGI, CGI::Simple, Plack, Dancer::Cookie
90

LICENSE

92       Copyright (C) Masahiro Nagano.
93
94       This library is free software; you can redistribute it and/or modify it
95       under the same terms as Perl itself.
96

AUTHOR

98       Masahiro Nagano <kazeburo@gmail.com>
99
100
101
102perl v5.36.0                      2023-01-20                Cookie::Baker(3pm)
Impressum