2012-10-26 3 views
0

별도 페이지에 사용자 이름과 암호를 입력해야만 액세스 할 수있는 웹 페이지가 있다고 가정 해 보겠습니다. 이 웹 페이지는 일반적인 기능과는 별도로 사용자가 로그인하는 시간과 사용자가 로그 아웃 한 시간을 추적해야합니다.클라이언트 독립적 사용자 로깅 입력 처리

현재 가지고있는 시스템은 JavaScript 솔루션입니다. 제출 단추에서 성공적인 click 이벤트로 로그인을 로그하는 기능과 로그 아웃 단추에 로그 아웃을 로그하는 기능.

분명히 몇 가지 문제가 있습니다. 사용자가 브라우저를 종료하면 어떻게 될까요? 그 로그 아웃은 기록되지 않을 것입니다. 사용자가 인터넷 연결을 끊으면 어떻게 될까요? 등등. 나는 클라이언트 사이드 처리기가 잘못 얻을 수있는 몇 가지 유스 케이스 scenerios 생각할 수 있습니다. 뭔가 보호 된 뭔가가 필요합니다. 당신은 클라이언트 쪽의 결함없이 위의 작업을 수행하기 위해 어떤 방법을 권장합니까? 실용적인 클라이언트 측 방법이 있습니까?

+0

서버 측을 사용하십시오. – case1352

+0

서버 측을 구현하더라도 문제가 남아 있습니다. 사용자가 응용 프로그램에서 아무 작업도하지 않을 때를 알 수 없습니다. 그들은 종종 브라우저를 닫고 로그 아웃하지 않습니다. –

+1

짧은 만료 시간을 가진 세션 ID는 어떻습니까? 그리고 페이지의 자바 스크립트 코드 만이이를 유지합니다. 코드가 멈 추면 세션 ID는 만료됩니까? –

답변

1

websocket 솔루션을 사용하면 새로운 사용자가 연결하거나 연결을 끊을 때 서버 측에서 알 수 있습니다. 이런 종류의 솔루션을 사용하는 유일한 "단점"은 사용자가 다른 페이지 (심지어 같은 도메인에있는 페이지)로 이동하면 사용자 disconect와 유사하다는 것입니다. 그런 다음 새 페이지에서 사용자 로그인을 추적하는 동일한 웹 소켓 솔루션 인 경우 "재구성"됩니다.

"ajax like"탐색 기능을 사용하면 사용자가 한 페이지를 남기지 않으므로이 문제를 방지 할 수 있습니다.

푸시와 같이 websocket을 구현할 수있는 멋진 API가 있습니다.

Here is the link to pusher