企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# cookie-parser 解析Cookie标头并使用由cookie名称键入的对象填充req.cookies。 您可以选择通过传递一个srcret字符串来启用签名cookie,该字符串分配给req.secret,以便其他中间件可以使用它。 ~~~ app.use(require('cookie-parser')(config.session_secret)); ~~~ <br> ## 创建cookie ~~~ res.cookie(name, value [, options]); ~~~ name 是 cookie 名,value 是 cookie 值,可以是 json 对象或字符串。 options 是选项,详细请阅[这里](http://www.expressjs.com.cn/4x/api.html#res.cookie),常用选项有: ~~~ { 'maxAge': 90000, # 有效时长,即90000毫秒后过期,String 'signed': false # 默认为false,表示是否签名,Boolean } ~~~ 创建 cookie 会在 http 响应头中添加Set-Cookie,从而在浏览器中设置 cookie <br> ## 获取cookie var cookies = req.cookies # 获取cookie集合 var value = req.cookies.key # 获取名称为key的cookie的值 <br> ## 删除cookie ~~~ res.clearCookie(name [, options]) ~~~ name 是 cookie 名,options 与创建 cookie 时所传一致 <br> ## 签名 出于安全的考虑,我们通常需要对cookie进行签名。 例子改写如下,有几个注意点: * `cookieParser` 初始化时,传入 `secret` 作为签名的秘钥。 * 设置 `cookie` 时,将 `signed` 设置为 `true` ,表示对即将设置的 `cookie` 进行签名。 * 获取 `cookie` 时,可以通过 `req.cookies`,也可以通过 `req.signedCookies` 获取。 ~~~ app.use(cookieParser('ruidoc')); // 需要传一个自定义字符串作为secret res.cookie(name, value, { 'signed': true }); var cookies = req.signedCookies // 获取cookie集合 var value = req.signedCookies.key // 获取名称为key的cookie的值 ~~~ ## 参考 https://www.cnblogs.com/chyingp/p/express-cookie-parser-deep-in.html https://segmentfault.com/a/1190000009663833