如何在Express中设置和检索签名的Cookie

时间:2018-10-12 20:44:10

标签: angular express cookies

我正在使用Angular和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 {}

知道发生了什么吗?

1 个答案:

答案 0 :(得分:0)

您的中间件在哪里?

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”将对我不起作用。