UFO ET IT

토큰 만료-JSON REST API-오류 코드

ufoet 2020. 11. 17. 21:28
반응형

토큰 만료-JSON REST API-오류 코드


JSON REST API가 있습니다. 15 분 동안 유효한 토큰을 제공하는 핸드 셰이크가 있습니다. 15 분 이내에하는 모든 통화는 정상적으로 작동합니다. 15 분 후 오류 개체 (코드, 메시지, 성공 = false 포함)를 반환하지만 어떤 HTTP 오류 코드를 반환해야하는지 궁금합니다. 그리고 HTTP 오류 코드를 사용하면 특정 클라이언트가 엉망이 될까요? (HTML5, iPhone, Android). 이 시나리오에서 모범 사례로 간주되는 것은 무엇입니까?


401 Unauthorized상태 코드를 반환해야합니다 . 토큰을 다시 설정하기 위해 추가로 하이퍼 미디어를 제공 할 수 있습니다.

웹 앱에서 일어나는 일에 대해 생각해보십시오. 은행 사이트로 이동합니다. 인증되지 않은 경우 로그인 페이지로 이동합니다. 그런 다음 로그인하면 잠시 동안 갈 수 있습니다. 그런 다음 만료되고주기가 반복됩니다.

그냥 생각.


사양 rfc6750- "OAuth 2.0 인증 프레임 워크 : Bearer 토큰 사용", https://tools.ietf.org/html/rfc6750 , p.8, 섹션 3.1, 리소스 서버는 401을 반환해야합니다.>

invalid_token 제공된 액세스 토큰이 만료, 취소, 형식이 잘못되었거나 다른 이유로 유효하지 않습니다. 리소스는 HTTP 401 (Unauthorized) 상태 코드로 응답해야합니다 (SHOULD). 클라이언트는 새 액세스 토큰을 요청하고 보호 된 리소스 요청을 다시 시도 할 수 있습니다.


FWIW Facebook은 사용자 지정 JSON 응답과 함께 400을 사용합니다. 개인적으로 사용자 지정 JSON 응답으로 401을 선호합니다.

다음은 FB의 응답 본문입니다.

{
  "error": {
    "message": "Error validating access token: Session has expired on Jul 17, 2014 9:00am. The current time is Jul 17, 2014 9:07am.",
    "type": "OAuthException",
    "code": 190,
    "error_subcode": 463
  }
}

OAuth 2 사양을 검색 한 결과 만료 될 때 "잘못된 토큰 오류"가 반환된다는 사실을 찾을 수있었습니다. 그들이 사용하는 HTTP 코드에 대한 언급이 없습니다. 그러나 가장 안전한 방법은 400을 사용하는 것입니다.

참고 URL : https://stackoverflow.com/questions/8855297/token-expired-json-rest-api-error-code

반응형