NodeJS connect.session和connect.cookieParser的区别?

kcugc4gi  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(157)

我想在我的Express应用程序中使用Connect的模块connect.sessionconnect.cookieParser使用安全Cookie。根据文档,两者都接受secret参数。此密钥用于防止用户篡改cookie。
我应该为两个模块设置相同的密钥,还是设置两个不同的密钥?或者我应该只给其中一个人一把钥匙?

1cklez4t

1cklez4t1#

您只需要将其设置为一个或另一个。但是,您可以传递给每个对象,以便为它们提供不同的secret来使用。
他们之间的区别在于他们所谓的“贪婪”。

  • session(secret)将保留secret,仅将其用于保存会话ID的cookie。
  • 另一方面,cookieParser(secret)将允许对任何cookie进行签名。

您可以使用Express' response.cookie()创建签名Cookie。
通过此方法还支持签名的cookie。只需传递signed选项。当给定时,res.cookie()将使用传递给express.cookieParser(secret)的秘密来签署值。

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

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

相关问题