Appearance
Express response.cookie
TIP
设置cookie name 值为value, 接受字符串参数或者JSON对象。 path 属性默认为 "/".
Express
res.cookie(name, value, [options])
res.cookie() 所做的只是使用提供的选项设置 HTTP Set-Cookie 标头。任何未指定的选项默认为
Express
res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true });
res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
options 参数是一个可以具有以下属性的对象。
属性 | 类型 | 描述 |
---|---|---|
domain | 字符串 | cookie 的域名。默认为应用的域名。 |
encode | 函数 | 用于 cookie 值编码的同步函数。默认为 encodeURIComponent。 |
expires | 日期 | 格林威治标准时间 cookie 的到期日期。如果未指定或设置为 0,则创建会话 cookie。 |
httpOnly | 布尔值 | 将 cookie 标记为只能由 Web 服务器访问。 |
maxAge | 数字 | 方便的选项,用于设置相对于当前时间的到期时间(以毫秒为单位)。 |
path | 字符串 | cookie 的路径。默认为 "/"。 |
secure | 布尔值 | 将 cookie 标记为仅与 HTTPS 一起使用。 |
signed | 布尔值 | 指示是否应该对 cookie 进行签名。 |
sameSite | 布尔值或字符串 | "SameSite" Set-Cookie 属性的值。 |
maxAge 属性是一个便利的设置"expires",它是一个从当前时间算起的毫秒。 下面的代码和上一个例子中的第二行是同样的作用。
Express
res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
可以传一个序列化的JSON对象作为参数, 它会自动被bodyParser() 中间件解析。
Express
res.cookie('cart', { items: [1,2,3] });
res.cookie('cart', { items: [1,2,3] }, { maxAge: 900000 });
使用 cookie-parser 中间件时,此方法还支持签名 cookie。只需将 signed选项设置为 true。然后 res.cookie()将使用传递给 cookieParser(secret)的秘密对值进行签名。
Express
res.cookie('name', 'tobi', { signed: true })
稍后您可以通过 req.signedCookies 对象访问此值