내가 제안 할 수있는 최선의 방법은 WWW-Authenticate 헤더가있는 HTTP 401 상태 코드입니다.
403 요청 의 문제 는 RFC 2616이 "승인이 도움이되지 않으며 요청을 반복해서는 안됩니다."라고 말합니다. (즉, 인증 여부는 중요하지 않습니다. 해당 리소스에 액세스 할 수 없습니다.)
401 요청 의 문제점 은 "WWW-Authenticate 헤더 필드를 포함해야합니다"라는 것입니다. 마찬가지로 누군가가 언급 한 WWW 인증 헤더에 사용자 정의 값을 사용할 수있는 사양을 위반 한 것으로 표시되지 않습니다.
RFC 2617 에서 HTTP 401 상태가 사용자 지정 WWW-Authenticate 헤더와 결합 된 상태 가 좋지 않은 이유를 알 수 없습니다 .
WWW-Authenticate: MyAuthScheme realm="http://example.com"
의 OAuth 스펙 (그들은 내 마음은 RFC의 이상한 해석이 있지만) 그들이이 추천으로 실제로, 다만이 작업을 수행 할 것 같다 :
WWW-Authenticate: OAuth realm="http://server.example.com/"
이것은 RFC에 의해 특별히 제재 된 것으로 보이지는 않지만 실제로 금지되어 있다는 것을 알 수 없습니다 (MUST 또는 NOT, SHOULD 또는 SHOULD NOT 조건과 충돌하지 않는 것 같습니다).
시간 초과 및 CSRF 토큰이 유효하지 않은 것과 같은 것에 대한보다 구체적인 HTTP 상태 코드가 있었으면 좋겠습니다.