IT

HTTP 401- 적절한 WWW-Authenticate 헤더 값은 무엇입니까?

lottoking 2020. 8. 15. 09:31
반응형

HTTP 401- 적절한 WWW-Authenticate 헤더 값은 무엇입니까?


지금 작업중 인 응용 프로그램에는 세션 시간 초과 값이 있습니다. 상호 작용하지 않은 경우 사용자 가이 값보다 오랫동안 상호 작용하지 않은 경우 다음 페이지를 표시하려고합니다.

모든 요청은 AJAX 호출을 포함하는 것을 통해 라우팅됩니다. 원래 우리는 로그인 페이지와 함께 200 헤더를 보내고 있었는데, 이는 200 응답이 전송되기 때문에 코드가 실행되기 때문에 AJAX에 몇 가지 문제가 발생하고 RPC 호출에서 다시 전송되는 대부분의 데이터는 평가되는 JSON 또는 원시 JavaScript입니다 . 물어보세요 : |).

우리의 JSON 파서가 HTML 로그인 페이지를 소비하지 않기 때문에 401이 더 낫다고 제안했습니다 .. :)

그러나 스펙을 읽을필드도 전송되어야 한다는 것을 알았 습니다.WWW-Authenticate

이 필드에 값은 무엇입니까? Application Login충분?


HTTP 기본 인증을 표시 할 때 다음과 같은 내용을 반환합니다.

WWW-Authenticate: Basic realm="myRealm"

반면 Basic에 계획과 나머지는 그 계획에 크게 의존합니다. 이 경우 영역은 사용자 ID와 암호를 제공하는 메시지를 표시 할 때 사용자에게 표시 할 수있는 리터럴을 브라우저에 표시합니다.

Basic Auth를 사용할 때 세션이 종료되므로 기본을 사용하고 있지 않습니다. 나는 당신이 어떤 형태의 폼 기반 인증을 사용하고 가정합니다.

기억하자면 Windows Challenge Response는 다른 체계와 다른 인수를 사용합니다.

트릭은 브라우저가 지원하는 체계와 이에 응답하는 방식을 결정하는 것은 브라우저에 달려있는 것입니다.

양식 기반 인증을 사용하는 경우 직감은 200 + 다시 로그인 페이지를 유지하지만 브라우저가 무시하지만 AJAX가 추가 할 수있는 사용자 지정 헤더를 추가하는 것입니다.

정말 좋은 User + AJAX 경험을 세션이 종료 된 AJAX 요청에 매달리고 팝업을 통해 재 로그인 요청을 실행하고 성공하면 AJAX 요청을 다시 시작하고 계속 진행하는 펼쳐가 가져옵니다.

세션 종료 시점을 무너 뜨리는 세션을 유지하기 위해 펼쳐가 5 분마다 사이트를 공격하는 치트를 피하십시오.

다른 대안은 AJAX 요청을 태우는 것이지만 사용자 경험이 좋지 않습니다.


아니요, 사용할 인증 방법 (일반적으로 "Basic")과 인증 영역을 지정해야합니다. 예제 요청 및 응답 http://en.wikipedia.org/wiki/Basic_access_authentication참조하십시오 .

RFC 2617-HTTP 인증 : 기본 및 다이제스트 액세스 인증 을 읽어 볼 수도 있습니다 .


사용자 세션이 시간 초과되면 HTTP 204 상태 코드를 다시 보냅니다. HTTP 204는 콘텐츠가 포함되어 있지 않습니다. 클라이언트 측에서 다음을 수행합니다.

xhr.send(null);
if (xhr.status == 204) 
    Reload();
else 
    dropdown.innerHTML = xhr.responseText;

다음은 Reload () 함수입니다.

function Reload() {
    var oForm = document.createElement("form");
    document.body.appendChild(oForm);
    oForm.submit();
    }

참고 URL : https://stackoverflow.com/questions/1748374/http-401-whats-an-appropriate-www-authenticate-header-value

반응형