Closed Berry-G closed 1 year ago
<!-- Session 시간설정 (단위:분) -->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
function logoutUser() {
clearTimeout(timerchecker);
var xhr = initAjax();
xhr.open("GET", "/ycc/logout", true);
xhr.send();
alert('세션이 만료되어 로그아웃 하였습니다.');
location.reload();
}
function fncClearTime() {
//기준단위 : 초(second)
iSecond = 15 * 60;
}
세션은 가장 마지막으로 http 요청을 한 시간을 기준으로 session-timeout에 걸어둔 시간이 지나면 서버에 할당 된 session을 제거하는 방식으로 연장됨.
타이머 연장 버튼을 눌렀을 때 ajax로 서버와 method 통신을 하면 새로고침 없이 http 요청을 보내서 마지막 세션 시간을 갱신 할 수 있음.
- ajax 통신 내용은 어떤 것이든 상관없음. 임의의 더미 페이지를 불러오는 방식을 사용.
function refreshTimer() {
//ajax로 임의 주소에 post method 보내서 세션 갱신
var xhr = initAjax();
xhr.open("POST", "/ycc/", false);
xhr.send();
fncClearTime();
}
세션 연장 버튼을 눌러서 javascript를 이용한 세션 반환은 막을 수 있으나 실제 설정 된 세션 유지시간은 연장 되지 않던 문제 해결