2015-10-09 15 views
5

Ich habe mir this answer und this answer angesehen, aber keine Würfel. Mein Problem ist, dass wenn meine App über https://appname.herokuapp.com zugegriffen wird, alles gut funktioniert. aber wenn über https://www.appname.com zugegriffen wird (welche CloudFlare-Aliase auf https://appname.herokuapp.com), bricht es zusammen.sichere cookies node.js + Heroku + CloudFlare

Insbesondere wenn ein Benutzer sich anmeldet, wird die Authentifizierung korrekt verarbeitet, aber das Benutzersitzungscookie ist nicht ordnungsgemäß festgelegt. Wenn der angemeldete Benutzer zum nächsten Bildschirm weitergeleitet wird, wird die Anfrage als nicht autorisiert zurückgewiesen.

Im Moment mache ich das in Eil:

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); 

Bin ich etwas in meinem Knoten Code fehlt, oder in meinem CloudFlare Einstellungen?

+0

Ich habe das gleiche Problem. Hast du das gelöst? – Marc

+0

@Marc, nein, habe ich leider nie getan. – BarthesSimpson

Antwort

0

Könnte es möglicherweise damit zusammenhängen, dass CloudFlare die Knoten-App instanziert hinter einem Proxy?

Zitat von Express.js/session Dokumentation:

Wenn Sie Ihren node.js hinter einem Proxy haben und verwenden sichere: true, müssen Sie "Vertrauen Proxy" in Express einzustellen.

app.set('trust proxy', 1)

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

Verwandte Themen