Партнерская платформа Intuit — какие статусы возврата мы должны искать, чтобы проверить, действителен ли токен OAuth?

Проходя технический обзор Intuit, Intuit указал, что нам нужно проверить в нашем приложении, чтобы убедиться, что токен OAuth все еще действителен.

До сих пор я нашел как минимум два разных кода возврата, которые могут произойти, когда токен OAuth недействителен — их больше двух? Какие еще коды возврата мы должны искать?

На данный момент найдено:

  • HTTP 401 Неавторизованный
  • HTTP 200 OK + код ошибки 3200

person Keith Palmer Jr.    schedule 11.12.2012    source источник


Ответы (2)


Единственный HTTP-статус, который следует использовать, — 401 Unauthorized. Любой другой статус ответа является либо ошибкой, либо ошибочной реализацией спецификации на стороне Intuit.

Возможно, токен действителен, но не для ресурса, к которому вы пытаетесь получить доступ. В этих случаях хорошо быть прагматичным и действительно указать потребителю API, ПОЧЕМУ они получают 401. Возможно, это сценарий, который Intuit покрывает с кодом ошибки 200+. Но это всего лишь предположение.

person Jon Nylander    schedule 11.12.2012
comment
Конечная точка, которая возвращает 200 OK, является общей конечной точкой получения доступных компаний Intuit, которая в основном должна быть доступна для любого токена в любое время. Посмотрим, что они скажут об этом. Спасибо! - person Keith Palmer Jr.; 11.12.2012
comment
ОБНОВЛЕНИЕ: Intuit ответила на запрос в службу поддержки, который я отправил им, и указала, что это ОШИБКА с их стороны - они должны всегда возвращать 401 Unauthorized, но это не так. Они подали отчет об ошибке и будут исправлять это. - person Keith Palmer Jr.; 11.12.2012

Кейт, имейте в виду, что вам не нужно проверять, недействителен ли токен, вы всегда должны знать об этом. Если клиент отключается, он отправляется на конечную точку OpenId с областью, где вы можете найти его на своей стороне и отключить.

В качестве альтернативы, если вы отключитесь, вы узнаете, что это недействительно.

Но да, это ошибка, она должна быть только несанкционированной. Я просто хотел указать, что вы должны знать состояние, прежде чем звонить в обычных случаях использования.

Джарред

person Jarred Keneally    schedule 11.12.2012
comment
Привет, Джарред. Что, если мы не используем OpenID? Это для приложения «Подключение только к QuickBooks» — у нас нет абсолютно НИКАКИХ компонентов OpenID, и Intuit не указал, что нам это нужно. - person Keith Palmer Jr.; 12.12.2012
comment
Это не требуется, если вы подключаетесь только к QuickBooks, это необходимо, если вы указаны в Appcenter. В любом случае, когда пользователь переходит в Appcenter и отключается, мы передаем его обратно вам с утверждением OpenId, которое содержит область. т.е. это там, если вам это нужно. - person Jarred Keneally; 12.12.2012
comment
Спасибо, это полезно! Итак, чтобы подтвердить - можно использовать OpenID для обнаружения этого, даже если мы НЕ указаны в AppCenter. - person Keith Palmer Jr.; 12.12.2012
comment
да это верно. OpenId требуется, когда он указан, потому что мы хотим, чтобы единый вход улучшал первый опыт использования клиентом при регистрации приложения из AppCenter. Но у него есть и другие применения для приложений, не принадлежащих Appcenter. - person Jarred Keneally; 03.01.2013