libcookie-baker-perl:基于 Perl 的 Cookie 字符串生成与解析工具

用户可借助此项目生成和解析 HTTP 响应头中的 Cookie 字符串。它提供 bake_cookie 和 crush_cookie 核心函数,支持多种 Cookie 属性设置,优先使用 XS 实现提升性能,纯 Perl 实现作为 fallback。【此简介由AI生成】

分支1Tags1
文件最后提交记录最后更新时间
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前

名称

Cookie::Baker - Cookie 字符串生成器/解析器

概要

使用 Cookie::Baker;

$headers->push_header('Set-Cookie', bake_cookie($key,$val));

my $cookies_hashref = crush_cookie($headers->header('Cookie'));

描述

Cookie::Baker 提供简单的 Cookie 字符串生成与解析功能。

XS 实现

本模块默认尝试使用 Cookie::Baker::XS 的 crush_cookie 方法。 若失败,则回退到 Cookie::Baker 的纯 Perl 版 crush_cookie。

目前尚未实现 bake_cookie 的 XS 版本。

函数

  • bake_cookie

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

    生成用于 HTTP 响应头的 Cookie 字符串。 第一个参数为 Cookie 名称,第二个参数可以是纯字符串或包含以下键的哈希引用: valuedomainexpirespathhttponlysecuremax-agesamesite

    • value

      Cookie 值。

    • domain

      Cookie 域名。

    • expires

      Cookie 过期时间。支持多种格式:

        expires => time + 24 * 60 * 60 # 时间戳
        expires => 'Wed, 03-Nov-2010 20:54:16 GMT'
        expires => '+30s' # 当前时间30秒后
        expires => '+10m' # 十分钟后
        expires => '+1h'  # 一小时后
        expires => '-1d'  # 昨天(即"立即过期")
        expires => '+3M'  # 三个月后
        expires => '+10y' # 十年后(60*60*24*365*10秒)
        expires => 'now'  # 立即
      
    • max-age

      若定义,则设置 Cookie 的 max-age 属性。

    • path

      Cookie 路径。

    • httponly

      为真时设置 HttpOnly 标记,默认为假。

    • secure

      为真时设置 secure 标记,默认为假。

    • samesite

      当定义为 'lax'、'strict' 或 'none'(不区分大小写)时,按照 草案提案设置 SameSite 限制, 该特性已在 Chrome (v51)、Safari (v12)、Edge (v16)、Opera (v38) 和 Firefox (v60) 中实现。

  • crush_cookie

    解析 Cookie 字符串并返回哈希引用。

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

相关模块

CPAN 已有多个 Cookie 相关模块,但缺乏简单的 Cookie 字符串生成与解析模块。

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

许可证

版权所有 (C) Masahiro Nagano。

本库为自由软件,您可依据与 Perl 相同的条款进行修改和再发布。

作者

Masahiro Nagano kazeburo@gmail.com

项目介绍

用户可借助此项目生成和解析 HTTP 响应头中的 Cookie 字符串。它提供 bake_cookie 和 crush_cookie 核心函数,支持多种 Cookie 属性设置,优先使用 XS 实现提升性能,纯 Perl 实现作为 fallback。【此简介由AI生成】

定制我的领域