90 votes

Jeton expiré - API REST JSON - Code d'erreur

J'ai une API REST JSON. Il y a une poignée de main qui vous donnera un jeton valable 15 minutes. Tous les appels que vous passez dans ces 15 minutes devraient fonctionner correctement. Après les 15 minutes, je retourne un objet d'erreur (inclut le code, le message, le succès = faux) mais je me demandais aussi quel code d'erreur HTTP je devrais retourner ? Et l'utilisation d'un code d'erreur HTTP va-t-elle perturber certains clients ? (HTML5, iPhone, Android). Qu'est-ce qui est considéré comme la meilleure pratique dans ce scénario ?

94voto

suing Points 1118

Vous devez renvoyer un code d'état 401 Unauthorized Vous pouvez également fournir un hypermédia pour rétablir le jeton

Pensez à ce qui se passe dans une application Web. Vous allez dire un site bancaire. Si non auth'd, il vous enverra à la page de connexion. Ensuite, vous vous connectez et vous êtes prêt à partir pour un certain temps. Ensuite, il expire et le cycle se répète.

Juste une pensée.

13voto

rynop Points 7818

FWIW Facebook utilise 400 avec une réponse JSON personnalisée. Personnellement, je préférerais 401 avec une réponse JSON personnalisée.

Voici le corps de la réponse 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
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X