微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用heroku node.js表达安全cookie?

我有一个在Cedar堆栈上运行的node.js应用程序,我很困惑为什么安全的cookie不起作用.

"express": "3.0.3","node": ">=0.8.14",...
app.use(express.session({
        secret : 'somesecret',store : // store works fine,sessions are stored
        key : 'sid',cookie : {
            secure : true,// it works without the secure flag (cookie is set)
            proxy : true,// tried using this as well,no difference
            maxAge: 5184000000 // 2 months
        }
}));
...

在localhost上一切正常,但在heroku上我似乎无法设置安全cookie.我究竟做错了什么? docs负载均衡器终止SSL,是否需要在那里进行配置?
非常感谢

解决方法

Heroku在到达您的应用程序之前终止SSL是正确的.这导致express显示非ssl流量,这可能是为什么它在Heroku上运行时拒绝设置cookie.

Heroku使用原始协议设置X-Forwarded-Proto标头.我没有对此进行测试,但根据文档,您必须通过将信任代理设置为文档here来告诉express尊重该标头中的信息.在req.protocol here下找到其他详细信息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐