J'ai des questions concernant un flux de travail de jeton d'actualisation API JWT utilisant Java Spring.
J'ai ceci jusqu'à présent:
Questions:
Quelle est la meilleure façon de distinguer les deux jetons.
Le jeton d'actualisation ne doit pas du tout être un JWT. Je préfère simplement générer une chaîne alphanumérique aléatoire. Le jeton d'actualisation ne contient aucune information supplémentaire. Il nécessite une recherche dans la base de données pour confirmer la validité du jeton d'actualisation. Vous les distinguez par leur emplacement dans votre demande. Le jeton d'autorisation (jeton d'accès) doit apparaître dans un en-tête de votre choix.
Quelle devrait être l'erreur à l'étape 3 (au lieu de non autorisée) pour la distinguer d'une demande sans jeton valide
L'envoi 401 non autorisé est exactement la façon de le faire. 401 indique au client qu'il ne peut pas accéder à la ressource maintenant, mais qu'il peut entreprendre des actions pour qu'il puisse à nouveau accéder à la ressource (jeton de connexion/actualisation). 403 de l'autre côté dirait au client que la ressource ne lui appartient pas et qu'il devra demander des autorisations, par ex. en contactant un administrateur
/ token/refresh ne demande pas actuellement d'authentification. Devrait-il?
Non, aucune authentification n'est nécessaire.
Si le point de terminaison/token/refresh est un POST avec en-tête, POST avec paramètres ou un GET avec en-tête).
En règle générale, un point de terminaison GET doit être en lecture seule et ne muter aucune ressource. POST et les points de terminaison PUT sont destinés aux mutations. Dans ce cas, j'utiliserais un POST avec des paramètres et une URL dédiée, par exemple/token/refresh