name + domain + path 为唯一 key, 管理 Cookie 对象集。new Cookies(cookieStr?: string, isSetCookie?: boolean): Cookies;
参数名称 | 类型 | 必填 | 说明 |
cookieStr | string | 否 | |
isSetCookie | boolean | 否 |
cookies.get(name?: string): null | Cookie | Array<Cookie>;
参数名称 | 类型 | 必填 | 说明 |
name | string | 否 | Cookie 名称,取值说明如下。 缺省 name 表示获取所有 Cookie 对象。 指定 name |
属性名 | 类型 | 只读 | 说明 |
name | string | 是 | Cookie 名称。 |
value | string | 是 | Cookie 值。 |
domain | string | 是 | Cookie 的作用域名。 |
path | string | 是 | Cookie 的作用路径。 |
expires | string | 是 | |
max_age | string | 是 | Cookie 经过 max_age 秒失效,单位秒(s)。 |
samesite | string | 是 | 控制 Cookie 跨站点请求伪造攻击(CSRF)的保护。 |
httponly | boolean | 是 | 禁止 JavaScript 访问 Cookie,仅限 HTTP 请求携带。 |
secure | boolean | 是 | Cookie 仅限 HTTPS 请求协议携带。 |
cookies.set(name: string, value: string, options?: Cookie): boolean;
name + domain + path 为唯一 key,覆盖添加 Cookie。cookies.append(name: string, value: string, options?: Cookie): boolean;
name + domain + path 为唯一 key 追加 Cookie。cookies.remove(name: string, options?: Cookie): boolean;
name + domain + path 为唯一 key 删除 Cookie。 " ( ) , / : ; < = > ? @ [ ] \\ { },0x00~0x1F, 0x7F~0xFF 将被自动转义。 , , ; " \\,0x00~0x1F,0x7F~0xFF 将被自动转义。value, domain, path, expires, max_age, samesite 累计大小不超过 1KB。function handleEvent(event) {const request = event.request;// 解析 Cookie 请求头(非法片段自动忽略)const cookies = new Cookies(request.headers.get('Cookie') || '');// 读取登录态标记 cookie// get 可能返回 null / 单个 Cookie / Cookie 数组(同名重复)const loginState = cookies.get('login_state');const loggedIn = loginState !== null &&!Array.isArray(loginState) &&loginState.value === '1';if (!loggedIn) {// 未登录:重定向到登录页,携带回跳地址const backUrl = encodeURIComponent(request.url);return event.respondWith(Response.redirect(`https://www.example.com/login?back_url=${backUrl}`, 302));}// 已登录:放行回源return;}
文档反馈