Berry-G / YoungCultureCenter

TEAM Young'tve jobs HOMEPAGE making project
0 stars 2 forks source link

세션 관리 : 최대 세션시간과 세션 연장버튼 작업 #109

Closed Berry-G closed 1 year ago

Berry-G commented 1 year ago

Image

세션 연장 버튼을 눌러서 javascript를 이용한 세션 반환은 막을 수 있으나 실제 설정 된 세션 유지시간은 연장 되지 않던 문제 해결

Berry-G commented 1 year ago

web.xml에 추가

    <!-- Session 시간설정 (단위:분) -->
    <session-config>
        <session-timeout>20</session-timeout>
    </session-config>
Berry-G commented 1 year ago

버그 수정

Image

   function logoutUser() {
       clearTimeout(timerchecker);
       var xhr = initAjax();
       xhr.open("GET", "/ycc/logout", true);
       xhr.send();
       alert('세션이 만료되어 로그아웃 하였습니다.');
       location.reload();
   }

Image

Berry-G commented 1 year ago

세션 로그아웃 시간 15분으로 설정

Berry-G commented 1 year ago

문제 해결

세션은 가장 마지막으로 http 요청을 한 시간을 기준으로 session-timeout에 걸어둔 시간이 지나면 서버에 할당 된 session을 제거하는 방식으로 연장됨.

타이머 연장 버튼을 눌렀을 때 ajax로 서버와 method 통신을 하면 새로고침 없이 http 요청을 보내서 마지막 세션 시간을 갱신 할 수 있음.

  • ajax 통신 내용은 어떤 것이든 상관없음. 임의의 더미 페이지를 불러오는 방식을 사용.
   function refreshTimer() {
   //ajax로 임의 주소에 post method 보내서 세션 갱신
    var xhr = initAjax();
   xhr.open("POST", "/ycc/", false);
   xhr.send();
   fncClearTime();
   }

최종 테스트

Image

Image