我正在使用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.
}
更新
添加代码后,我意识到我正在res
(快速响应)上设置cookie,但使用request
(请求-承诺模块)发出了get请求。我认为这可能是我的问题。我将弄清楚如何将Cookie设置为request
并查看是否可以解决它。
答案 0 :(得分:0)
我基本上解决了这个问题。事实证明,在Express { ....
content: "<div id="attachment_565754" class="wp-caption alignnone"> <img class="size-large wp-image-565754"...../>"
......
}
<div className="col col-sm-12 col-md-12 col-lg-12"dangerouslySetInnerHTML {{__html: this.props.postDetails.content}}>
</div>
上设置cookie是问题的一部分。我应该将其设置在res
对象上(请求承诺)。我尝试了几种方法来设置请求中的cookie,包括request
。但是唯一可行的方法是:
request.cookie