ExpressJS에서 세션을 종료하는 방법
문서 어딘가에 묻혀 야 할 것 같지만 찾을 수 없습니다.
ExpressJS에서 세션을 어떻게 닫거나 종료하거나 종료합니까?
Express 4.x 업데이트 된 답변
세션 처리는 더 이상 Express에 내장되지 않습니다. 이 답변은 표준 세션 모듈을 참조 합니다 : https://github.com/expressjs/session
세션 데이터를 지우려면 다음을 사용하십시오.
req.session.destroy();
문서는 이것에 대해 약간 쓸모가 없습니다. 그것은 말한다 :
세션을 파괴하고 req.session을 제거하면 다음 요청이 다시 생성됩니다.
req.session.destroy(function(err) { // cannot access session here })
이것은 현재 세션이 다음 요청에서 다시로드된다는 것을 의미 하지 않습니다 . 이는 다음 요청시 세션 저장소에 깨끗한 빈 세션이 생성됨을 의미합니다. (아마도 세션 ID는 변경되지 않지만 테스트하지는 않았습니다.)
신경 쓰지 마세요. req.session.destroy();
이 질문은 어떤 유형의 세션 저장소가 사용되었는지 명확하지 않았습니다. 두 답변 모두 올바른 것 같습니다.
쿠키 기반 세션의 경우 :
에서 http://expressjs.com/api.html#cookieSession
req.session = null // Deletes the cookie.
Redis 등 기반 세션의 경우 :
req.session.destroy // Deletes the session in the database.
에서 http://expressjs.com/api.html#cookieSession
쿠키를 지우려면 응답하기 전에 세션을 null로 지정하면됩니다.
req.session = null
를 사용하면 req.session = null;
실제로 세션 인스턴스가 삭제되지 않습니다. 가장 적절한 해결책은 req.session.destroy();
이지만 이것은 본질적으로 delete req.session;
.
https://github.com/expressjs/session/blob/master/session/session.js
Session.prototype.destroy = function(fn){
delete this.req.session;
this.req.sessionStore.destroy(this.id, fn);
return this;
};
사용하다,
delete req.session.yoursessionname;
req.session.destroy();
위의 내용이 저에게 효과가 없었으므로 이것을했습니다.
req.session.cookie.expires = new Date().getTime();
쿠키 만료를 현재 시간으로 설정하면 세션이 자체적으로 만료됩니다.
여러 곳에서 언급했듯이 req.session.destroy () 함수가 제대로 작동하도록 할 수 없습니다.
이것은 .. 주위의 내 작업입니다. 트릭을 수행하는 것처럼 보이지만 여전히 req.flash를 사용할 수 있습니다.
req.session = {};
req.session = null 을 삭제하거나 설정하는 경우 ; , 그러면 req.flash를 사용할 수없는 것 같습니다.
참고 URL : https://stackoverflow.com/questions/5573256/how-to-end-a-session-in-expressjs
'Program Tip' 카테고리의 다른 글
java.lang.ClassNotFoundException : com.sun.jersey.spi.container.servlet.ServletContainer (0) | 2020.10.06 |
---|---|
Google Maps API v3에서 SVG 마커를 사용하는 방법 (0) | 2020.10.06 |
void 메서드 내에서 return을 사용하는 것이 나쁜 습관입니까? (0) | 2020.10.06 |
라디오 버튼의 색상은 어떻게 변경합니까? (0) | 2020.10.06 |
DOM 컨테이너를 통해 Highcharts 차트에 액세스하려면 어떻게해야합니까? (0) | 2020.10.06 |