【发布时间】:2018-11-29 08:42:54
【问题描述】:
我正在使用 Firebase Cloud Functions 和 cookie 模块,其中一个函数设置“__session”cookie(Cloud Functions 中唯一可用的 cookie),然后对另一个函数执行“GET”请求。在第二个函数中,当我尝试使用 cookie.parse(req.headers.cookie).__session 获取 cookie 时,它说它是未定义的。但是,我可以在浏览器中看到 cookie,所以我不知道为什么我无法在我的应用程序中获取它。我注意到还有其他几个与此问题类似的 SO 问题也没有得到解答。
这是第一个函数的相关代码:
const nonce = require('nonce')();
const state = nonce();
res.cookie('__session', state);
request.get('https://myappurl.firebaseapp.com/myapp/path?state=' + state, { json: true })
.catch((error) => {
console.log(error.message);
});
res.redirect('someurl.com');
来自第二个函数:
const cookie = require('cookie');
app.get('/myapp/path', (req, res) => {
console.log(req.headers.cookie); // This is undefined.
const stateCookie = cookie.parse(req.headers.cookie).__session
console.log('stateCookie: ' + stateCookie); // This is undefined.
}
更新
添加代码后,我意识到我将 cookie 设置在 res(快速响应)上,但使用 request(request-promise 模块)发出获取请求。我想这可能是我的问题。我将弄清楚如何将 cookie 设置为request,看看是否能解决问题。
【问题讨论】:
标签: node.js firebase express cookies google-cloud-functions