문제

세션이 만료되었다고 사용자에게 알리는 것이 가능합니까? 브라우저가 서버 역할을하고 그러한 알림을받을 수 있습니까?

한 가지 솔루션은 클라이언트 측에서 카운트 다운을 수행하고 결국 클라이언트에 알리는 JavaScript를 생성하는 것입니다. 그러나 첫 번째 방법으로 수행 할 수있는 경우 반복됩니다.

그리고 첫 번째 접근 방식의 결과는 무엇입니까? 보안 문제가 있습니까?

예를 들어 Django에서의 위치 구현은 무엇입니까?

도움이 되었습니까?

해결책

JavaScript가 정기적으로 서버에 알림 (30 초마다)을 사용하여 XMLHTTPRequest URL을 확인합니다. 세션이 시간이 오래되면 서버는 해당 URL에 무언가를 넣을 수 있고 알림을 팝업 할 수 있습니다. 이것이 StackoverFlow가 답을 작성하는 중에 다른 사람이 이미 질문에 대답 한 알림을 구현하는 방법입니다.

다른 팁

당신은보고 싶을 수도 있습니다 혜성, 비록 JavaScript 타이머가 파손 가능성이 낮고 구현하기 쉬운 솔루션이 훨씬 더 나은 솔루션이라고 생각합니다.

만료 통지 만 제공하고 실제로 해당 단계에서 인증하는 것이 아니라 보안 영향을 생각할 수 없습니다.

당신은 일종의 것을 찾고 있습니다 혜성-유형. 아마도 가장 쉬운 "Server-Push"는 서버를 폴링하는 것입니다.

실제로 Django에서는 파일 시스템 또는 데이터베이스 엔진을 사용하는 경우 서버 측 만료가 없습니다. => 클라이언트 쿠키 세션 ID가 만료되는 것입니다. 그렇지 않으면 캐시 기반 세션을 사용하는 경우 캐시 만료를 세션 쿠키 만료보다 더 큰 값으로 설정할 수 있습니다.

그런 다음 로그인시 클라이언트 브라우저를 플래그하기 위해 만료없이 쿠키를 선언하고 모든 페이지에서 세션 ID를 확인하십시오. 세션 ID 쿠키가 없지만 "쿠키 플래그"가있는 경우 세션이 만료됩니다. 서버를 확인할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top