2011-08-12 5 views
2

Grails 앱에서 타임 아웃을 다루는 데 도움이 필요합니다.Grails에서 타임 아웃 페이지를 구현하는 방법

컨텍스트 : 내 Grails 애플리케이션에 중요한 정보가 표시됩니다. 분명히 이것은 누군가가 로그인 상태를 유지할 수 없다는 것을 의미하며, 로그 아웃을 잊어 버렸을 경우 나는 그들을 타임 아웃해야합니다. 지금 구현 한 시스템은 다음과 같습니다.

- 사용자가 성공적으로 로그인하면 세션 변수 isValid가 true로 설정됩니다.

-gsp를 렌더링하거나 리디렉션 할 수있는 메서드가 호출되면 모든 컨트롤러에서 해당 값을 검사합니다. isValid가 null의 경우는 즉시, 에러 페이지에 리다이렉트 (redirect)됩니다.

- 각 gsp는 제한 시간 초과 오류 페이지로 사용자를 리디렉션하는 jquery 시간 초과 기능을 가지고 있으며 isValid를 false로 설정합니다 (이론적으로 어쨌든 앱을 사용하지 못하게해야 함).

리디렉션이 모두 정상적으로 작동합니다. 내가 겪고있는 문제는 사용자가 시간을 초과 할 때 계속 뒤로 버튼을 사용하여 마지막 페이지의 캐시 된 버전으로 돌아갈 수 있다는 것입니다. 분명히 이것은 시간 초과의 목적을 무효로합니다.

질문 : 사용자가 제한 시간 페이지를 벗어나거나 제한 시간이 초과되면 항상 제한 시간 페이지로 리디렉션되는 것을 방지 할 수있는 방법을 알고있는 사람이 있습니까?

감사

답변

1

(가) 모든 작업의 ​​벌금을 리디렉션합니다. 내가 겪고있는 문제는 사용자가 시간을 초과 할 때 계속 뒤로 버튼을 사용하여 마지막 페이지의 캐시 된 버전으로 돌아갈 수 있다는 것입니다. 분명히 이것은 시간 초과의 목적을 무효로합니다.

왜이 확인 (어떤 사용자가 브라우저의 뒤로 버튼을 누르면 발사한다) 세션은 여전히 ​​유효하며 그렇지 않으면 것은로 사용자를 리디렉션 페이지로드에 앱에 다시 Ajax 요청을 추가하지 시간 초과 페이지? 충분히 단순해야합니다.

정보가 중요한 경우 캐시/콘텐츠 만료 관련 HTTP 헤더를 설정하여 브라우저에 페이지를 캐시해서는 안된다는 것을 알리십시오. 여기서 다시 생각해 보면 일부 브라우저는 이러한 설정을 완전히 존중하지 않는다는 것입니다.