Bar*_*son 6 cookies https heroku node.js cloudflare
我看了这个答案和这个答案,但没有骰子.我的问题是,当我的应用程序通过https://appname.herokuapp.com访问时,一切正常.但是当通过https://www.appname.com(CloudFlare别名为https://appname.herokuapp.com)访问时,它会崩溃.
具体来说,当用户登录时,将正确处理身份验证,但未正确设置用户会话cookie.因此,当登录用户转发到下一个屏幕时,请求将被拒绝为未经授权.
现在我在快递中这样做:
var mySession = session({
key: "sid",
secret: process.env.SESSIONS_SECRET,
proxy: true,
cookie: {
maxAge: 86400000,
secure: true,
},
store: rDBStore,
resave: false,
saveUninitialized: true,
unset: 'destroy'
});
app.enable('trust proxy');
app.use(mySession);
Run Code Online (Sandbox Code Playgroud)
我在节点代码或CloudFlare设置中遗漏了什么?
这可能与 CloudFlare 将节点应用程序实例置于代理后面有关吗?
引用自expressjs/session文档:
如果您的node.js位于代理后面并且使用secure: true,则需要在express中设置“信任代理”。
app.set('trust proxy', 1)
https://github.com/expressjs/session#cookiesecure
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |