Tengo una API REST JSON. Hay un apretón de manos que le dará una ficha válida por 15 minutos. Todas las llamadas que hagas dentro de esos 15 minutos deberían funcionar correctamente. Después de los 15 minutos, estoy devolviendo un objeto de error (incluye código, mensaje, éxito = falso) pero también me preguntaba qué código de error HTTP debería devolver. ¿Y el uso de un código de error HTTP afectará a ciertos clientes? (HTML5, iPhone, Android). ¿Qué se considera la mejor práctica en este escenario?
web-services
rest
api-design
BuddyJoe
fuente
fuente
Respuestas:
Debe devolver un
401 Unauthorized
código de estado. También puede proporcionar hipermedia para establecer el token nuevamentePiense en lo que sucede en una aplicación web. Vas a decir un sitio bancario. Si no está autorizado, lo enviará a la página de inicio de sesión. Luego inicias sesión y estás listo para ir por un tiempo. Luego expira y el ciclo se repite.
Solo un pensamiento.
fuente
de acuerdo con la especificación rfc6750 - "The OAuth 2.0 Authorization Framework: Bearer Token Usage", https://tools.ietf.org/html/rfc6750 , p.8, sección 3.1, el servidor de recursos debe devolver 401:>
fuente
FWIW Facebook usa 400 con una respuesta JSON personalizada. Personalmente, preferiría 401 con respuesta JSON personalizada.
Aquí está el cuerpo de respuesta de 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 } }
fuente