connect自带中间件--cookieParser()

Connect的cookie解析器支持常规cookie、签名cookie和特殊的JSONcookie。req.cookies默认是用常规未签名cookie组装而成的。如果想支持session()中间件要求的签名cookie,在创建cookieParser()实例时要传入一个加密用的字符串。

1、基本用法

作为参数传给cookieParser()的密钥用来对cookie签名和解签,让Connect可以确定cookie的内容是否被篡改过。这个密钥应该是个长度合理的字符串。

const connect = require('connect')
const app = connect()
app.use(connect.cookieParser('tobi is a cool ferret')
   .use(function(req, rese){
      console.log(req.cookies)
      console.log(req.signedCookies)
      res.end('hello\n')
    })
app.listen(3000)

2、签名cookie

签名cookie放在req.signedCookies对象中。把两个对象分开是为了体现开发者的意图。如果都放在一起,常规cookie可能就会被改造,仿冒签名cookie
签名cookie:tobi:**********************,点号左边的是cookie的值,右边是在服务器上用SHA-1 HMAC生成的加密哈希值。如果cookie的值或者HMAC被改造的话,Connect的解签会失败。

3、JSONcookie

JSONcookie带有前缀j:,告诉Connect它是一个串行化的JSON,它既可以是签名的,也可以是未签名的。

4、设定出站cookie

Connect可以通过res.setHeader()函数写入多个Set-Cookie响应头。

你可能感兴趣的:(connect自带中间件--cookieParser())