黑人的命也是命。
支持平等正义倡议.

cookie-parser

NPM Version NPM Downloads Build Status Test Coverage

解析 Cookie 标头并将 req.cookies 填充为一个以 cookie 名称为键的对象。可以选择通过传递一个 secret 字符串来启用签名 cookie 支持,这将分配 req.secret,以便其他中间件可以使用它。

安装

$ npm install cookie-parser

API

var cookieParser = require('cookie-parser')

cookieParser(secret, options)

使用给定的 secretoptions 创建一个新的 cookie 解析器中间件函数。

  • secret 用于签署 cookie 的字符串或数组。这是可选的,如果未指定,则不会解析已签署的 cookie。如果提供字符串,则将其用作密钥。如果提供数组,则将尝试使用每个密钥按顺序取消签署 cookie。
  • options 传递给 cookie.parse 作为第二个选项的对象。有关更多信息,请参见 cookie
    • decode 用于解码 cookie 值的函数

中间件将解析请求上的 Cookie 标头,并将 cookie 数据作为属性 req.cookies 公开,如果提供了 secret,则作为属性 req.signedCookies 公开。这些属性是 cookie 名称到 cookie 值的名称值对。

当提供 secret 时,此模块将取消签署并验证任何已签署的 cookie 值,并将这些名称值对从 req.cookies 移动到 req.signedCookies。已签署的 cookie 是一个 cookie,其值以 s: 为前缀。签名验证失败的已签署 cookie 将具有值 false,而不是篡改的值。

此外,此模块支持特殊的“JSON cookie”。这些是 cookie,其值以 j: 为前缀。当遇到这些值时,该值将作为 JSON.parse 的结果公开。如果解析失败,则原始值将保留。

cookieParser.JSONCookie(str)

将 cookie 值解析为 JSON cookie。如果它是 JSON cookie,这将返回解析后的 JSON 值,否则,它将返回传递的值。

cookieParser.JSONCookies(cookies)

给定一个对象,这将遍历键并对每个值调用 JSONCookie,用解析后的值替换原始值。这将返回与传入相同的对象。

cookieParser.signedCookie(str, secret)

将 cookie 值解析为已签署的 cookie。如果它是已签署的 cookie 且签名有效,这将返回解析后的未签署值。如果该值未签署,则返回原始值。如果该值已签署但签名无法验证,则返回 false

secret 参数可以是数组或字符串。如果提供字符串,则将其用作密钥。如果提供数组,则将尝试使用每个密钥按顺序取消签署 cookie。

cookieParser.signedCookies(cookies, secret)

给定一个对象,这将遍历键并检查任何值是否为已签署的 cookie。如果它是已签署的 cookie 且签名有效,则该键将从对象中删除并添加到返回的新对象中。

secret 参数可以是数组或字符串。如果提供字符串,则将其用作密钥。如果提供数组,则将尝试使用每个密钥按顺序取消签署 cookie。

示例

var express = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser())

app.get('/', function (req, res) {
  // Cookies that have not been signed
  console.log('Cookies: ', req.cookies)

  // Cookies that have been signed
  console.log('Signed Cookies: ', req.signedCookies)
})

app.listen(8080)

// curl command that sends an HTTP request with two cookies
// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello"

许可证

MIT