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

Tom*_*Tom 4 cookies session connect node.js express

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

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

Jon*_*ski 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 });
    
    Run Code Online (Sandbox Code Playgroud)

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