我正在使用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 {}
知道发生了什么吗?
答案 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”将对我不起作用。