Scroll to navigation

Cookie::Baker(3pm) User Contributed Perl Documentation Cookie::Baker(3pm)

NAME

Cookie::Baker - Cookie string generator / parser

SYNOPSIS

    use Cookie::Baker;
    $headers->push_header('Set-Cookie', bake_cookie($key,$val));
    my $cookies_hashref = crush_cookie($headers->header('Cookie'));

DESCRIPTION

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

XS IMPLEMENTATION

This module tries to use Cookie::Baker::XS's crush_cookie by default. If this fails, it will use Cookie::Baker's pure Perl crush_cookie.

There is no XS implementation of bake_cookie yet.

FUNCTION

  my $cookie = bake_cookie('foo','val');
  my $cookie = bake_cookie('foo', {
      value => 'val',
      path => "test",
      domain => '.example.com',
      expires => '+24h'
  } );
    

Generates a cookie string for an HTTP response header. The first argument is the cookie's name and the second argument is a plain string or hash reference that can contain keys such as "value", "domain", "expires", "path", "httponly", "secure", "max-age", "samesite".

Cookie's value.
Cookie's domain.
Cookie's expires date time. Several formats are supported:

  expires => time + 24 * 60 * 60 # epoch time
  expires => 'Wed, 03-Nov-2010 20:54:16 GMT'
  expires => '+30s' # 30 seconds from now
  expires => '+10m' # ten minutes from now
  expires => '+1h'  # one hour from now
  expires => '-1d'  # yesterday (i.e. "ASAP!")
  expires => '+3M'  # in three months
  expires => '+10y' # in ten years time (60*60*24*365*10 seconds)
  expires => 'now'  #immediately
    
If defined, sets the max-age for the cookie.
Cookie's path.
If true, sets HttpOnly flag. false by default.
If true, sets secure flag. false by default.
If defined as 'lax' or 'strict' or 'none' (case-insensitive), sets the SameSite restriction for the cookie as described in the draft proposal <https://tools.ietf.org/html/draft-west-first-party-cookies-07>, which is already implemented in Chrome (v51), Safari (v12), Edge (v16), Opera (v38) and Firefox (v60).
Parses cookie string and returns a hashref.

    my $cookies_hashref = crush_cookie($headers->header('Cookie'));
    my $cookie_value = $cookies_hashref->{cookie_name}
    

SEE ALSO

CPAN already has many cookie related modules. But there is no simple cookie string generator and parser module.

CGI, CGI::Simple, Plack, Dancer::Cookie

LICENSE

Copyright (C) Masahiro Nagano.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Masahiro Nagano <kazeburo@gmail.com>

2019-07-22 perl v5.28.1