사람들은 사용자가 주소를 변경하고 페이지를 떠날 때 어떻게 알 수 있습니까? 저는 JSF 1.2를 사용하고 있습니다. 사장님이이 작은 기능을 원합니다. 그는 페이지에 있습니다. 그런 다음 다른 주소 Ctrl + L을 누른 다음 www.foo.com을 입력하고 페이지로 돌아 오면 세션이 여전히 유효합니다. 로그인 화면을 통과 할 필요가 없습니다.이 이벤트가 발생하면 무효화하는 방법은 무엇입니까?사용자가 jsf에서 페이지를 떠날 때 세션을 무효화하는 방법은 무엇입니까?
0
A
답변
-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
사용자가 다른 도메인으로 URL을 변경하면 앱에 알릴 방법이 없기 때문에 이렇게 할 수 없습니다. 여기를보세요 - 자세한 정보는 http://stackoverflow.com/questions/1686687/how-can-i-get-the-destination-url-in-javascript-onbeforeunload-event를 참조하십시오. –