gpt4 book ai didi

node.js - 在 Express 中签署 Cookie

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:06 25 4
gpt4 key购买 nike

如果我正确理解 cookie 签名,那么它的作用是:设置 cookie 时用 secret 对其进行签名。使用相同的 key 取消对 cookie 的签名,以验证它在接收时没有被更改。

现在在expressjsres.cookie() 来设置 cookie,它需要一个“signed” bool 值来设置 cookie 是否应该签名。

现在,签名使用什么 secret ?我认为它可能使用提供给 cookieParser() 的 secret ,但实际上并没有在任何地方的文档中明确提及。

所以我的问题本质上是:如何设置用于在expressjs中签名cookie的 secret ?

我确实阅读了 Express 文档,并在 google 和 stackoverflow 上搜索了答案,如果我遗漏了一些明显的东西,抱歉。

最佳答案

Express 确实会使用提供给 cookie-parser 的 secret 来签署您的 cookie。 Cookie 解析器将 inject the secret into your request object 。那么, express 会use it in order to sign the cookie 。如果没有向cookie-parser(或其他中间件)提供 secret ,那么express将 throw an error当尝试设置新的签名 cookie 时。

回答你的问题,这就是你应该如何设置 secret (使用cookie-parser):

var express = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser('your-secret'))

app.get('/', (req, res, next) => {
res.cookie('name', 'value', { signed: true })
res.json({})
})

然后它将在 req.signedCookies 中可用。

关于node.js - 在 Express 中签署 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com