首页 > 解决方案 > 如何在 express 中设置和检索签名的 cookie

问题描述

我正在使用 Express 并通过出现在浏览器中来设置签名的 cookie,但是当我尝试在 Express 中检索它时,{}在查看签名的 cookie 时我得到“未定义”或空对象:

app.use(require('cookie-parser')('something secret')// header
res.cookie('e', 'mycookie', {signed:true})
req.signedCookies['e'] //returns undefined
req.signedCookies //returns {}

知道发生了什么吗?

标签: expresscookies

解决方案


你的中间件在哪里?

app.use(require('cookie-parser')('something secret') // header

app.use(function (req, res, next) {
  res.cookie('e', 'mycookie', {signed:true})
  req.signedCookies['e'] // returns undefined
  req.signedCookies // returns {}
  next()
})

此外,res.cookie您正在对来自 Express 服务器的 HTTP 响应设置 cookie。检查您的 HTTP 响应以查看 cookie 是否存在。

您正在从req.signedCookies传入的 HTTP 请求中获取 cookie。您的 cookie 是否设置在传入请求中?它有有效的签名吗?

在响应上设置 cookie 不会突然使该 cookie 在请求中可访问,对吧?因此,在响应中设置“e”,然后尝试在请求中获取“e”在我看来是行不通的。


推荐阅读