2013-08-01 2 views
0

사람들은 사용자가 주소를 변경하고 페이지를 떠날 때 어떻게 알 수 있습니까? 저는 JSF 1.2를 사용하고 있습니다. 사장님이이 작은 기능을 원합니다. 그는 페이지에 있습니다. 그런 다음 다른 주소 Ctrl + L을 누른 다음 www.foo.com을 입력하고 페이지로 돌아 오면 세션이 여전히 유효합니다. 로그인 화면을 통과 할 필요가 없습니다.이 이벤트가 발생하면 무효화하는 방법은 무엇입니까?사용자가 jsf에서 페이지를 떠날 때 세션을 무효화하는 방법은 무엇입니까?

+1

사용자가 다른 도메인으로 URL을 변경하면 앱에 알릴 방법이 없기 때문에 이렇게 할 수 없습니다. 여기를보세요 - 자세한 정보는 http://stackoverflow.com/questions/1686687/how-can-i-get-the-destination-url-in-javascript-onbeforeunload-event를 참조하십시오. –

답변

-1

유일한 방법은 JavaScript 함수를 <body onunload='...'> (http://www.w3schools.com/jsref/event_onunload.asp)으로 바인딩하는 것입니다. 사용자가 페이지를 잎이 달린 경우, 브라우저가 /logout URL에 대한 요청을 발행합니다

<script type="application/javascript"> 
function logout() { 
    var xhr = XMLHttpRequest(); 
    xhr.open('get', '/logout', false); 
    xhr.send(null); 
} 
</script> 
.... 
<body onunload="logout()"> ... 

이 방법 :

는 여기에 예입니다. 서버 측에서는 /logout을 요청하는 사용자 세션을 무효화하십시오.

+0

사용자가 현재 페이지에 양식을 제출하거나 ** 같은 ** 웹 사이트에서 다른 페이지로 연결되는 링크를 클릭하거나 ** 같은 ** 웹 사이트의 다른 페이지로 URL을 변경하는 경우에도 실행됩니다. 이것은 OP가 의도 한 바가 아닙니다. Adrian의 질문에 대한 링크를주의 깊게 읽으십시오. – BalusC