2012-09-11 2 views
2

저는 백엔드에서 익스프레스와 통신하는 단일 페이지 자바 스크립트 애플리케이션을 구축하고 있습니다. 앱의 다양한 지점에서 백엔드와 상호 작용하여 세션을 업데이트합니다. 세션 만료는 보안 상 비교적 짧습니다.세션을 업데이트하지 않는 익스프레스/연결 경로는 어떻게 할 수 있습니까?

오랜 시간 동안 유휴 상태 였고 백엔드와 거래하지 않은 경우 세션이 만료 될 수 있음을 사용자에게 경고하고 싶습니다.

세션에 남아있는 시간 (session.maxAge)을 반환하는 익스프레스 "하트 비트"경로를 원하지만 세션 만료를 새로 고치지 않으려합니다.

connect.session 코드는 요청이 끝날 때 자동으로 세션을 새로 고칩니다.

세션에 액세스하여 maxAge를 가져 오는 방법을 찾고 있지만 업데이트하지 않았습니다.

+0

http://socket.io를 사용 해본 적이 있습니까? – InspiredJW

+0

ㅎ, 그건 내가 실제로 사용하고있는 것입니다. 그러나 socket.io + cluster + redisstore + xhr_polling = complete (https://github.com/LearnBoost/socket.io/issues/939)가 실패합니다. 그래서 저는 오래된 학교의 해결 방법을 찾고 있습니다. 또한 socket.io를 통해 세션을 만지는 것은 쿠키의 만료를 업데이트하지 않으므로 실제 요청이 이루어질 때까지 redis/쿠키가 만료됩니다. –

답변

0

특정 경로 (req.url)에서 오는 경우 세션 만료를 수정하지 않기 위해 수동으로 SessionStore를 수정해야합니다.

Session.touch()를 호출하는 sessionStore의 부분을 찾습니다.

관련 문제