2015-10-09 17 views
5

Ho guardato a this answer e this answer ma nessun dado. Il mio problema è che quando si accede alla mia app tramite https://appname.herokuapp.com, tutto funziona correttamente. ma quando si accede tramite https://www.appname.com (che alias CloudFlare a https://appname.herokuapp.com), si interrompe.cookie sicuri node.js + Heroku + CloudFlare

In particolare, quando un utente esegue il login, l'autenticazione viene elaborata correttamente, ma il cookie della sessione utente non è impostato correttamente. Quindi, quando l'utente che ha effettuato l'accesso viene inoltrato alla schermata successiva, la richiesta viene rifiutata come non autorizzata.

In questo momento sto facendo questo in veloce:

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

Mi manca qualcosa nel mio codice nodo, o nelle mie impostazioni CloudFlare?

+0

Ho lo stesso problema. Hai risolto questo? – Marc

+0

@Marc, no non l'ho mai fatto sfortunatamente. – BarthesSimpson

risposta

0

Potrebbe essere correlato al fatto che CloudFlare mette l'app del nodo dietro un proxy?

Citato da documentazione expressjs/sessione:

Se avete i vostri node.js dietro un proxy e si utilizza sicura: vero, è necessario impostare "proxy fiducia" in espresso.

app.set('trust proxy', 1)

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