RESTful 로그인 실패 : 401 또는 사용자 지정 응답 반환
이것은 개념적인 질문입니다.
RESTful 웹 서비스에 대한 로그인 작업을 지원해야하는 클라이언트 (모바일) 애플리케이션이 있습니다. 웹 서비스가 RESTful이기 때문에 클라이언트가 사용자의 사용자 이름 / 암호를 수락하고 서비스에서 해당하는 사용자 이름 / 암호를 확인한 다음 모든 요청과 함께 해당 이름 / 암호를 보안합니다.
이 웹 서비스의 다른 모든 응답은 JSON 형식으로 제공됩니다.
질문은 주어진 사용자 이름 / 암호가 유효한지 확인하기 위해 웹 서비스를 쿼리 할 때 웹 서비스가 항상 성공 또는 실패를 알려주는 JSON 데이터로 응답 해야하는지 또는 좋은 자격 증명 및 HTTP에서 HTTP 200을 반환해야합니다. 잘못된 자격 증명에 401.
내가 많은 이유는 다른 RESTful 서비스가 자격 증명이있는 경우에도 유효한 자격 증명에 401을 사용하기 때문입니다. 그러나 401 응답에 대한 나의 이해는 유효한 자격 증명 없이는 액세스 권한이 없어야하는 리소스를 나타냅니다. 그러나 로그인 리소스의 전체 목적은 자격 증명이 유효한지 알려주는 것이기 때문에 로그인 리소스는 누구나 액세스 할 수 있어야합니다.
다르게 말하면 다음과 같은 요청이있는 것입니다.
myservice.com/this/is/a/user/action
잘못된 자격 증명이 제공되면 401을 반환해야합니다. 그러나 다음과 같은 요청 :
myservice.com/are/these/credentials/valid
특정 URL (요청)이 유효한 자격 증명을 사용하거나 사용하지 않고 검증 된 검증 된 401을 반환합니다.
나는 이것에 대한 제안한 의견을 듣고 싶습니다. 이를 처리하는 표준 방법은 무엇이며이를 사용하여 처리하는 표준 방법은 무엇입니까?
우선. 401은 로그인 실패가 발생했을 때 보낼 수있는 응답 코드입니다.
401 Unauthorized 403 Forbidden과 유사하지만 특히 인증이 필요하고 실패했거나 아직 제공되지 않은 경우에 사용됩니다. 응답에는 요청 된 리소스에 적용 할 수있는 챌린지를 포함하는 WWW- 인증 헤더 필드가 포함됩니다.
myservice.com/are/these/credentials/valid
확인을 할 때 401을 다시 하나의 혼란은 REST에서 부울 요청을 수행하는 것이 RESTful 제약 조건에 의해 잘못된다는 사실에 근거한 것입니다. 모든 요청은 리소스를 반환해야합니다. RESTful 서비스에서 부울 질문을 수행하는 것은 RPC 로의 측정 운 슬루프입니다.
지금은 당신이 본 서비스가 어떻게 작동하는지 모르겠습니다. GET을 시도하는 계정을 가지고있는 것입니다. 자격 증명이 가능하면 계정 개체를 얻을 수 있습니다. HEAD를 수행 할 수 있습니다.
계정 개체는 고유 한 리소스를 생성하기 까다로울 수있는 모든 성가신 부울 값을 저장 좋은 장소이기도합니다.
401은 요청에 인증 헤더 필드가 필요하고 인증이 실패한 경우에만 전송되어야합니다. 로그인 API에는 인증이 필요하지 않습니다. 401은 제 생각에 잘못된 오류 코드입니다.
여기 표준에 따라 https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
* 10.4.2 401 무단
요청에는 사용자 인증이 필요합니다. 응답은 요청 된 자원에 적용 할 수있는 챌린지를 포함하는 WWW-Authenticate 헤더 필드 (14.47 절)를 포함해야합니다. 클라이언트는 적절한 권한 부여 헤더 필드 (섹션 14.8)를 사용하여 요청을 반복 할 수 있습니다. 요청에 이미 인증 자격 증명이 요청 된 경우 401 응답은 해당 자격 증명에 대한 인증이 나타납니다. 401 응답에 이전 응답과 동일한 챌린지가 포함되어 있고 사용자 에이전트가 이미 한 번 번번을 시도한 경우 해당하는 경우가 관련 진단 정보를 포함 할 수 있으므로 사용자에게 응답에 응답을 제공합니다 (SHOULD). HTTP 액세스 인증은 "HTTP 인증 : 기본 및 다이제스트 액세스 인증"[43]에 설명되어 있습니다. *
참고 URL : https://stackoverflow.com/questions/11714485/restful-login-failure-return-401-or-custom-response
'IT' 카테고리의 다른 글
console.log javascript [기능] (0) | 2020.09.12 |
---|---|
Git이 파일을 바이너리로 취급하게 지불해야합니까? (0) | 2020.09.12 |
인터셉터를 사용하여 Retrofit 2.0에서 헤더를 추가하는 방법은 무엇입니까? (0) | 2020.09.12 |
Git이 잘못된 지적로 푸시 (0) | 2020.09.12 |
WiX에서 MSI 설치 프로그램을 만드는 방법을 배우기위한 좋은 리소스 (0) | 2020.09.12 |