2012-05-16 2 views
0

페이지에서 매 10 초마다 jquery ajax가 서버에 호출됩니다. 이제 사용자가 서버에 대한 일반 요청 (아약스 호출 없음)을하면 (그가 2 분 동안 유휴 상태 인 경우) 사용자가 로그 아웃되기를 원합니다. 이미 2 분의 시간 제한을 가진 양식 인증 쿠키를 만들었지 만 문제는 자동 jquery ajax 호출 (매 10 초 후)에 의해 인증되지 않은 사용자가 만들어지지 않는다는 것입니다. 이 사건을 어떻게 처리 할 수 ​​있습니까?jquery ajax가 양식 인증 문제를 호출합니다.

+0

2 분 후에 AJAX 요청의 간격을 지우시겠습니까? – ManseUK

+0

하지만 내 경우에는 슬라이딩 만료가 true이고 만료가 연장되는 2 분 안에 ajax 호출이 처리되기 때문에 내 경우에는 이미 만료 시간이 연장되지 않습니다. –

답변

1

지우기 간격 2 분 후 인증 쿠키를 제거 :

var intervalID=window.setInterval(yourajaxfunction,10000); 

window.setTimeout( 
    function() { 
     clearInterval(intervalID); // cancel the ajax requests 
     clearCookie(); // remove the authentication cookie locally 
    }, 
    120000 // 2 minutes timeout 
); 

I는 서버 측에서 인증 쿠키에 대한 검사가 있다고 추측하고있어 - 그 다음 사용자가 강제로 발견되지 않는 경우는 재 인증하기.

+0

예, 폼 인증 모듈에서 자동으로 수행해야합니다. 그러나이 경우 아약스 호출은 계속해서 발생하며 쿠키는 아약스 호출과 함께 설정되므로 양식 인증 모듈은 사용자를 사이트를 방문한 것으로 간주하므로 더 이상 만료일을 밀면 더 많은 요청이 서버로 전송됩니다. 추가 만료 될 것입니다. –

+0

@RockySingh 아마도 내 대답은 충분히 상세하지 않았다. 아이디어는 ajax 호출이 멈출 것이라고 생각한다. (나는'setInterval' 메소드를 사용하여 ajax 호출을 시작한다고 생각한다.) ... 2 후에'clearTimeout()'메소드를 사용한다. 분 (페이지로드에서) 쿠키가 지워졌습니다 ... 이것은 더 이상의 통신을 의미하지 않으며 사용자가 다음 번에 페이지를 요청할 때 연결합니다. 쿠키가 없습니다. 다시 인증을 강요합니다 – ManseUK

+0

하지만 페이지에 다른 아약스 호출이있을 수 있습니다 해당 페이지에서 메시지 또는 일부 채팅 응용 프로그램을 보냅니다. 사용자가 메시지를 보냈습니다. 난 그냥 내 지속적인 아약스 전화 양식 인증 시간 초과를 연장해서는 안됩니다 –

0

@ 서버 쪽에서 유효성 검사 기능을 만들 수 있습니다. 모든 Ajax 요청은 먼저이 유효성 검사를 호출하고 유효한 경우 스크립트를 정상적으로 실행합니다. 유효하지 않으면 쿠키를 지울 수 있습니다.

+0

나는 당신을 얻지 못했습니다. 샘플이나 링크가 있습니까? –

관련 문제