728x90
728x90

로그아웃 후 조회하던 이전 페이지를 볼 수 없게 하려면 대략 이런 것들을 생각해 볼 수 있습니다.

1) no-cache와 쿠키(세션)을 이용한 방법
  - header와 meta 태그에 no-cache 적용
  - 각 페이지별 로그인 여부 검증 (쿠키 or 세션) 후 로그인이 아닐 경우 페이지 이동 ( Header 방식 )

2) 로그아웃 부분에 강제 IE 종료 JavaScript를 넣어 브라우져를 닫는 방법

3) 모든 페이지 이동을 JavaScript의 Replication 으로 동작 하게 변경
   단 에디팅에서 submit 되는 영역은 Replication이 불가능 하기 때문에
   ajax로 폼 전송 후 JavaScript Replication 처리

 

아래는 로그아웃 후 뒤로가기 (Backspace) 를 막는 방법입니다.

1. history에 현재 페이지를 추가하고, 뒤로가기 시 현재 페이지로 이동해 안되게 합니다.

history.pushState(null, null, location.href);

window.onpopstate = function(event) {
	history.go(1);
};

// 출처: https://vicki.tistory.com/1487 [불친절한자수씨]

 

2. 간단한 방법으로 위와 결과는 유사합니다.

window.history.forward(); 
function noBack(){
	window.history.forward();
} 
<body onload="noBack();" onpageshow="if(event.persisted) noBack();" onunload="">

 

3. 내가 사용한 방법

위 방법들은 뒤로 가기 한 번만 막고 두 번 뒤로가면 그대로 넘어가기 때문에 의미가 없어서 세션 키 검사를 통해 로그인 후 생성된 유저키 세션이 있으면 유지하거나 뒤로가기가 가능하고 로그아웃이 되어 세션이 없으면 뒤로가기를 막게끔 했습니다. 아래 코드를 로그인 화면을 제외한 다른 화면에 넣었습니다. 일정 시간마다 세션을 체크하는 코드입니다. 

		function CheckSession() {
			if (sessionStorage.getItem("loginKey") == null) {
				window.location = "로그인화면주소";
			}
		}

		setInterval(CheckSession(), 100);
728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v