我想在我的 Express 应用程序中使用 connect 的模块connect.session
和connect.cookieParser
. 根据文档,两者都接受一个secret
参数。此密钥用于防止用户篡改 cookie。
我应该为两个模块设置相同的键,还是两个不同的?还是我应该只将钥匙传递给其中一个?
我想在我的 Express 应用程序中使用 connect 的模块connect.session
和connect.cookieParser
. 根据文档,两者都接受一个secret
参数。此密钥用于防止用户篡改 cookie。
我应该为两个模块设置相同的键,还是两个不同的?还是我应该只将钥匙传递给其中一个?
您只需要使用其中一个进行设置。不过,您可以传递给每个,以便为它们提供不同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对象访问该值。