2012-10-11 8 views
3

가 나는 HTTPS 서버를 가지고 있고, 내가있는 maxage 값 세션을 사용, 여기에 코드입니다 : 내가 원하는내 세션 쿠키가 만료되는 이유는 무엇입니까? 노드에서

app.use(express.cookieParser()); 
app.use(express.session({ 
    secret: 'secret stuff', 
    store: sessionStore, 
    cookie: { 
    secure: true, 
    maxAge: 60 * 1000 //1 minute 
    } 
})); 

기능성이 경우 사용자가 MAXAGE 기간 내에 사이트를 방문 할 경우 (1 분 같은 쿠키 타이머가 다시 시작되고 세션 ID가 1 분 남았습니다.

req.session._expires은 (세션 미들웨어에 의해) 업데이트되었지만 쿠키는 그대로 유지됩니다. 쿠키가 만료되면 새로운 세션 ID connect.sid이 생성됩니다.

내가 어떻게 이것을 달성 할 수 있습니까? 나는 그것이 세션 미들웨어에 의해 자동적으로 이루어진다 고 생각했지만, 세션의 만료와 세션의 만료는 두 개의 다른 것들 인 것 같다. session._expires는 무엇인가?

편집

Here DanielBaulig 단어 내 문제가 더 나은. Marc B가 댓글에 쓴 바와 같이 쿠키가 만료되므로 세션이 고아가되었습니다. 그게 내가 피하고 싶습니다. 세션을 만졌을 때 쿠키를 갱신하고 싶습니다.

+1

쿠키 수명은 사용자의 브라우저에서 쿠키가 지속되는 기간을 설정합니다. 세션 수명은 세션이 서버에서 얼마나 오랫동안 지속되어야 하는지를 설정합니다. 둘 중 하나가 다른 것과 독립적으로 만료되도록 할 수 있습니다. –

+0

@MarcB clear, thanks, so 그렇다면 내가 내 쿠키를 직접 업데이트하거나 null로 남겨두고 세션에 대한 maxAge를 설정해야합니다 (다른 질문이 될 것입니다 :). – balazs

+1

사용자의 쿠키가 만료되면 해당 세션 파일이 고아가되고 사용자가 "로그 아웃"됩니다. 세션 파일이 만료되면 사용자는 유효한 세션 쿠키였던 내용이 있더라도 "로그 아웃"됩니다. –

답변

2

는 날짜가 제대로 초기화되지 않는 만료 내가 생각하고

cookie: { 
    secure: true, 
    expires: new Date(Date.now() + 60 * 1000), // plus 1 minute 
    maxAge: 60 * 1000 //1 minute 
} 

을보십시오.

+0

편집 내 "대답" –

+0

여기, 설명대로 작동하지 않습니다 : http://stackoverflow.com/questions/15016551/node-js-express-passport-cookie-expiration 서버 1 분 후에 만료 날짜를 설정합니다 곧 시작됩니다. – standup75

관련 문제