安全cookie node.js + Heroku + CloudFlare

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设置中遗漏了什么?

Dan*_*iel 4

这可能与 CloudFlare 将节点应用程序实例置于代理后面有关吗?

引用自expressjs/session文档:

如果您的node.js位于代理后面并且使用secure: true,则需要在express中设置“信任代理”。

app.set('trust proxy', 1)

https://github.com/expressjs/session#cookiesecure