DOKK / manpages / debian 10 / libcookie-baker-perl / Cookie::Baker.3pm.en
Cookie::Baker(3pm) User Contributed Perl Documentation Cookie::Baker(3pm)

Cookie::Baker - Cookie string generator / parser

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

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

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.

  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' (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), 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}
    

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

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

Copyright (C) Masahiro Nagano.

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

Masahiro Nagano <kazeburo@gmail.com>

2018-10-03 perl v5.26.2