2012-08-23 2 views
1

Grails 1.3.5를 사용 중입니다. 브라우저를 닫을 때 내 앱에서 사용자를 자동으로 로그 아웃해야하거나 내 앱이 열리는 모든 탭을 자동으로 로그 아웃해야합니다.사용자가 탭/브라우저를 닫을 때 grails에서 로그 아웃하는 방법은 무엇입니까?

+2

신뢰할 수있는 방법이 없습니다. – Gregg

+1

참고 사항 : http://stackoverflow.com/questions/3986430/how-we-call-logout-servlet-on-browser-close-event – ataylor

답변

4

(의 모든 웹 프레임 워크뿐만 아니라 Grails의) 일부 대규모 장단점이 있기는하지만,이에 가까운를 얻을 수 다소 해키 방법이있다을이 작업을 수행하는 특히 신뢰할 수있는 방법은 더이 있지만 .

일반적으로 기본 세션 시간 초과가 있기 때문에 세션과 관련된 요청을받지 못하여 세션이 만료되면 사용자가 로그 아웃됩니다 (일반적으로). 이 동작은 보안 환경에 따라 변경 될 수 있지만 (현명한) 기본값을 사용한다고 가정합니다.

이 세션 만료 로그 아웃은 ab 일 수 있습니다.이 세션 만료 로그 아웃은 응용 프로그램이 열린 창/탭이없는 경우 로그 아웃을 모방하는 데 사용됩니다. 이렇게하려면 세션을 "활성"상태로 유지하고 로그인 상태를 유지하기 위해 지정한 간격으로 서버를 지속적으로 "핑 (ping)"하는 작은 자바 스크립트 조각을 가질 수 있습니다. 이러한 핑을 얼마나 세게 설정해야합니까? 귀하의 서버와 그들이 브라우저를 닫은 후 다시 열어서 여전히 로그인 상태를 유지할 수있는 시간의 창

내가 말했듯이 이것은 매우 hacky이지만 작동합니다.

관련 문제