2016-09-03 3 views
0

나는 redis 연결과 nginx 프록시를 사용하여 express-session 모듈을 사용합니다. secure : false와 함께 사용하면 sid 쿠키가 설정됩니다. 하지만 보안을 설정하면 그렇지 않습니다. 나는 신속하고 안전하게 다른 쿠키를 직접 설정할 수 있습니다 : 사실이며 작동합니다. Express에서nodejs 모듈을 사용하십시오. secure with express가 작동하지 않습니다.

익스프레스 세션 설정 :

//proxy configuration 
app.set('trust proxy', 1); // trust first proxy (ngnix proxy) 

//session 

app.use(session({ 
    secret: 'to-secret-to-show', 
    resave: false, 
    saveUninitialized: true, 
    rolling: true, 
    cookie: { 
     httpOnly: true, 
     sameSite: 'strict', 
     secure: secure 
    }, 
    store: new RedisSessionStore({ 
     client: redis, 
     ttl: 86400, //time to life, one day 
    }), 
})); 

보안의 경우는 envirement에 참 또는 거짓 규격이 나와 있지 않으면 무시로 설정되어 있습니다. 나는 그것을 진실로 직접하려고 노력하지만, chnage를 만들지는 않는다.

의 nginx 프록시 설정 :

proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     #proxy_set_header X-Forwarded-Host $http_host; 

     proxy_pass http://nodejs; 
     proxy_redirect off; 

내가 Dokumentation 그것이 정확해야 파일을 볼

. 뭔가 잊었 니? 나는 엄격한 테스트를 할 수 없다. 왜냐하면 내가 살아있는 시스템 만 보안 연결을하기 때문이다. X-Forwarded-Proto 헤더를 추가

답변

1

시도 :

proxy_set_header X-Forwarded-Proto $scheme; 

이의 nginx에 대한 연결이 보안 있다면 express-session를 결정하는 방법이다.