토큰 만료-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
'UFO ET IT' 카테고리의 다른 글
pip 패키지에 대한 종속성 트리를 표시하는 방법이 있습니까? (0) | 2020.11.17 |
---|---|
Clojure : 휴식 대 다음 (0) | 2020.11.17 |
How do I test (in one line) if command output contains a certain string? (0) | 2020.11.17 |
Django에서 커스텀 미들웨어를 설정하는 방법 (0) | 2020.11.17 |
Windows에서 'dnu'명령을 찾을 수있는 위치 (0) | 2020.11.17 |