728x90
SMALL
session이 끊기면 알람이 끊기면서 로그인 페이지로 이동해주고싶었다
근데 브라우저 세션은 브라우저가 켜져있는 한 생성이 되기때문에 session이 끊긴다고해서 로그아웃이 자동으로 될일은 없다
인터넷 세상은 생각보다 수동이다.
setTimeout으로 키보드 이벤트를 체크하여 지정시간 동안 이벤트 없을 시 ajax로 세션체크 method호출하여 session을 전체삭제해주고 로그인페이지로 이동해주도록 하였다.
근데 로그인페이지에서도 작동을 하기때문에 로그인페이지가 아닐때만 세션삭제 후 이동하도록 하였다.
//사용자로부터 마우스 또는 키보드 이벤트가 없을경우의자동로그아웃까지의 대기시간, 분단위
var iMinute = 1;
var iSecond = iMinute * 60 ;
var timerchecker = null;
initTimer=function(){
/// //사용자부터 마우스 또는 키보드 이벤트가 발생했을경우자동로그아웃까지의 대기시간을 다시 초기화
if(window.event){
iSecond = iMinute * 60;
clearTimeout(timerchecker);
// console.log("iSecond EVENT:" +iSecond );
}
if(iSecond > 0){
// console.log("iSecond >0:" +iSecond );
//지정한 시간동안 마우스, 키보드 이벤트가 발생되지 않았을 경우
iSecond--;
timerchecker = setTimeout("initTimer()", 1000); // 1초 간격으로 체크
}else{
// console.log("iSecond ELSE:" +iSecond );
$.ajax({
method: 'POST',
url: '/main/sessionCheck.do',
async : false,
success : function(result) {
if(result == "Y"){
clearTimeout(timerchecker);
alert("장시간 미사용으로 자동 로그아웃 처리되었습니다.");
location.href = "/login.do"; // 로그아웃 처리 페이지
}else{
}
},
error : function(err){
console.log('실패');
}
});
}
}
onload = initTimer;///현재 페이지 대기시간
document.onclick = initTimer; /// 현재 페이지의 사용자 마우스 클릭이벤트 확인
document.onkeypress = initTimer;/// 현재 페이지의 키보트 입력이벤트 확인
일단 test로 1분을 해놓았고 추후에는 원하는 분으로 들리면 된다
테스트하고싶으면 콘솔 주석 풀어서 확인해보면 된다.
@RequestMapping(value = "/main/sessionCheck.do")
@ResponseBody
public String sessionCheck()throws Exception {
String result = null;
String referer = request.getHeader("referer");
if(!referer.contains("login")) {
session.invalidate();
result = "Y";
}
return result;
}
sessioncheck method는 간단하게 커스텀해봤다.
getheader에서 전 주소를 가져와 저장을 시키고 login페이지가 아닐 때 세션을 삭제해주는거다
그리고 result 결과값을 보내 js에서 결과값에 따라 로직을 실행하도록 하였다
728x90
LIST
'Front > Javascript·Jquery' 카테고리의 다른 글
javascript로 주소창에 있는 parameter받기, 넘겨준 파라미터받기 (0) | 2022.08.25 |
---|---|
jQuery.ajax() 중복요청 처리 방지하기 (0) | 2022.08.16 |
[chart.js] line chart에서 기준 값 이상은 다른색으로 표현하기, line color 변경, 그라데이션없이 단색으로 설정하기 (1) | 2022.08.05 |
jquery 스크롤이 있는 영역의 특정한 행으로 스크롤 이동하기, offset안먹힐때 , position (0) | 2022.07.11 |
[javascript ,jquery] trigger 처음에 안먹힐때, 클릭이벤트 안먹힐 때, document trigger click, 동적이벤트 후 트리거 (0) | 2022.07.05 |
댓글