connect.session和connect.cookieParser之间的区别?

时间:2013-08-22 07:49:05

标签: node.js session cookies express connect

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

我应该为两个模块设置相同的密钥,还是两个不同的模块?或者我应该只将密钥传递给其中一个?

1 个答案:

答案 0 :(得分:5)

您只需要设置一个或另一个。但是,您可以传递给每个人,以便为他们提供不同的secret来使用。

他们之间的区别在于他们所说的" 贪婪"用它。

  • session(secret)会将secret保留给自己,只会将其用于持有会话ID的Cookie。

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

    您可以使用Express'创建已签名的Cookie response.cookie()

      

    此方法也支持签名的cookie。只需传递signed选项即可。如果给定res.cookie(),则会使用传递给express.cookieParser(secret)的密码对该值进行签名。

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

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