2013-04-15 2 views
1

현재 서버 측에서 Dropwizard를 사용하고 클라이언트 측에서 RequireJS, Backbone을 사용하여 REST 응용 프로그램을 작성하고 있습니다.클라이언트 쪽에서 인증 오류 처리

우리의 인증 모델은 쿠키 기반입니다. 매 요청시 웹 필터는 적절한 쿠키와 해당 값인 토큰을 확인합니다.

do an ajax request: 
    success: 
     render the rest of the content 
    error: // got 401 
     stop whatever you were doing and redirect to the login page 

유일한 : 토큰이 여전히 유효한 경우는 그것이처럼 끝 클라이언트 측에서 401

로 응답하지 않은 경우, 그것은, 필터 체인에 요청을 전달합니다 이 접근법에서 발견 된 결함은 로그인 페이지로 리디렉션되기 전에 클라이언트가 먼저 실제 페이지를 다운로드해야한다는 것입니다 (물론 401 경우).

예를 들어, 저는 두 페이지 a.html과 b.html을 가지고 있습니다. 클라이언트가 페이지 a.html을 탐색하고 토큰이 만료 된 후에는 먼저 b.html을 다운로드해야 백그라운드에서 ajax 요청을 실행하고 (위 참조) 리디렉션 할 수 있습니다. 로그인 페이지로 :

a.html (200) -> token expired -> b.html (200) -> login.html (200) 

지금까지 작성한 모든 REST 응용 프로그램에서 이러한 유형의 오류 처리를 사용하고있었습니다.

a.html (200) -> token expired -> login.html (200) 

하지만이 서버 측 코드에 약간의 논리를 묶는, 일반적으로 서버 측 필터에서 로그인 페이지 URL을 하드 코딩하고, 예를 들어 요구 : 내가보고 싶은 것은, 예를 들면이다.

나는 클라이언트 측에서 서버 인증 오류를 처리하는 더 좋은 방법이있을 것이라고 확신하며 그에 대해 알고 싶습니다.

답변

관련 문제