connect.session的秘密和connect.cookieParser的区别?
我想使用连接模块connect.session
和connect.cookieParser
在我的Express应用程序中使用安全的cookie。 根据文档,都接受一个secret
参数。 该密钥用于防止用户篡改cookie。
我应该将相同的密钥设置到两个模块还是两个不同的模块? 或者我应该只通过一个关键到其中之一?
你只需要设置一个或另一个。 虽然,你可以传递给每个人,以便给他们不同的secret
使用。
他们之间的区别在于他们所谓的“ 贪婪 ”。
-
session(secret)
将保持自己的secret
,只有使用它的cookie持有会话ID。 -
另一方面,
cookieParser(secret)
将允许任何cookie被签名。您可以使用Express'response.cookie
response.cookie()
创build签名的cookie。这个方法也支持签名的cookie。 只需传递
signed
选项。 当给res.cookie()
将使用传递给express.cookieParser(secret)
来签名的值。res.cookie('name', 'tobi', { signed: true });
稍后,您可以通过req.signedCookies对象访问此值。