tencent cloud

文档反馈

最后更新时间:2024-01-30 17:05:56
    Cookies 提供了一组 cookie 操作接口。
    注意:
    Cookies 对象以 name + domain + path 为唯一 key, 管理 Cookie 对象集。

    构造函数

    const cookies = new Cookies(cookieStr?: string, isSetCookie?: boolean);

    参数

    参数名称
    类型
    必填
    说明
    cookieStr
    string
    Cookie 字符串或者 Set-Cookie 字符串。
    isSetCookie
    boolean
    参数 cookieStr 是否是 Set-Cookie 字符串,默认为 false。

    方法

    get

    cookies.get(name?: string): null | Cookie | Array<Cookie>;
    获取指定名称的 Cookie 对象。存在多个 name 匹配时,返回 Cookie 数组。

    参数

    参数名称
    类型
    必填
    说明
    name
    string
    Cookie 名称,取值说明如下。
    缺省 name
    表示获取所有 Cookie 对象。
    指定 name
    表示获取指定 name 的 Cookie 对象,存在多个匹配时,返回 Cookie 数组。
    Cookie 对象属性如下,详细参见 MDN 官方文档 Set-Cookie
    属性名
    类型
    只读
    说明
    name
    string
    Cookie 名称。
    value
    string
    Cookie 值。
    domain
    string
    Cookie 的作用域名。
    path
    string
    Cookie 的作用路径。
    expires
    string
    Cookie 最长有效时间, 取值符合 HTTP Date 首部标准。
    max_age
    string
    Cookie 经过 max_age 秒失效,单位秒(s)。
    samesite
    string
    控制 Cookie 跨站点请求伪造攻击(CSRF)的保护。
    httponly
    boolean
    禁止 JavaScript 访问 Cookie,仅限 HTTP 请求携带。
    secure
    boolean
    Cookie 仅限 HTTPS 请求协议携带。

    set

    cookies.set(name: string, value: string, options?: Cookie): boolean;
    覆盖添加 Cookie。返回 true,表示添加成功,返回 false,表示添加失败(超过了 cookies 数量限制,详细参见 cookies 大小限制)。
    注意:
    name + domain + path 为唯一 key,覆盖添加 Cookie。

    参数

    参数名称
    类型
    必填
    说明
    name
    string
    Cookie 名称。
    value
    string
    Cookie 值。
    Cookie
    string
    Cookie 属性配置项。

    append

    cookies.append(name: string, value: string, options?: Cookie): boolean;
    追加 Cookie,用于相同 name, 多个 value 的场景。返回 true,表示添加成功,返回 false,表示添加失败(value 重复或超过了 cookies 数量限制,详细参见 cookies 大小限制)。
    注意:
    name + domain + path 为唯一 key 追加 Cookie。

    remove

    cookies.remove(name: string, options?: Cookie): boolean;
    删除 Cookie。
    注意:
    name + domain + path 为唯一 key 删除 Cookie。

    参数

    参数名称
    类型
    必填
    说明
    name
    string
    Cookie 名称。
    options
    Cookie 属性配置项,其中属性 domian 和 path 可支持 *, 表示匹配所有。

    使用限制

    特殊字符自动转义

    name 值包含字符 " ( ) , / : ; ? < = > ? @ [ ] \\ { }0x00~0x1F0x7F~0xFF 将被自动转义。
    value 值包含字符 , , ; " \\0x00~0x1F0x7F~0xFF 将被自动转义。

    cookies 大小限制

    Cookie 属性 name 大小不超过 64B。
    Cookie 属性 value, domain, path, expires, max_age, samesite 累计大小不超过 1KB。
    cookies 转义后所有字段总长度不超过 4KB。
    cookies 中包含的 Cookie 对象总数不超过 64个。

    示例代码

    function handleEvent(event) {
    const response = new Response('hello world');
    
    // 生成 cookies 对象
    const cookies = new Cookies('ssid=helloworld; expires=Sun, 10-Dec-2023 03:10:01 GMT; path=/; domain=.tencentcloud.com; samesite=.tencentcloud.com', true);
    
    // 设置响应头 Set-Cookie
    response.setCookies(cookies);
    
    return response;
    }
    
    addEventListener('fetch', (event) => {
    event.respondWith(handleEvent(event));
    });

    相关参考

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持