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 ?
Réponses
Trop de publicités?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.
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
}
}