connect.session的秘密和connect.cookieParser的区别?

我想使用连接模块connect.sessionconnect.cookieParser在我的Express应用程序中使用安全的cookie。 根据文档,都接受一个secret参数。 该密钥用于防止用户篡改cookie。

我应该将相同的密钥设置到两个模块还是两个不同的模块? 或者我应该只通过一个关键到其中之一?

你只需要设置一个或另一个。 虽然,你可以传递给每个人,以便给他们不同的secret使用。

他们之间的区别在于他们所谓的“ 贪婪 ”。

  • session(secret)将保持自己的secret ,只有使用它的cookie持有会话ID。

  • 另一方面, cookieParser(secret)将允许任何cookie被签名。

    您可以使用Express'response.cookie response.cookie()创build签名的cookie。

    这个方法也支持签名的cookie。 只需传递signed选项。 当给res.cookie()将使用传递给express.cookieParser(secret)来签名的值。

     res.cookie('name', 'tobi', { signed: true }); 

    稍后,您可以通过req.signedCookies对象访问此值。