4

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

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

4

1 回答 1

5

您只需要使用其中一个进行设置。不过,您可以传递给每个,以便为它们提供不同secret的 s 以供使用。

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

  • 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对象访问该值。

于 2013-08-22T08:09:27.837 回答