Cookie 会话,使用秘密而不是密钥

时间:2021-07-31 16:38:06

标签: node.js express cookie-session

我的 cookie 会话设置如下:

app.use(require("cookie-session")({
    name: 'session',
    secret: keys.session.secret,
    maxAge: 1 * 25 * 60 * 1000 
}));

我正在阅读文档,示例设置如下:

  name: 'session',
  keys: [/* secret keys */],

  // Cookie Options
  maxAge: 24 * 60 * 60 * 1000 // 24 hours
}))

文档还说这个秘密是:

<块引用>

如果未提供键,将用作单个键的字符串。

我对键数组的工作方式感到困惑。当它是单个秘密时,服务器知道该秘密并使用相同的秘密来解密请求。

关于键数组文档说:

<块引用>

用于签署和验证 cookie 值的密钥列表,或 配置的 Keygrip 实例。设置 cookie 始终签名 密钥[0],而其他密钥对验证有效,允许 密钥轮换。

如果随机选择keys数组中的项目来加密密钥,服务器如何知道使用哪个密钥?如果不同的响应需要不同的密钥来解密怎么办?

0 个答案:

没有答案