82 votes

Personnaliser l'Autorisation d'en-tête HTTP

J'ai besoin d'authentifier un client quand il envoie une demande à un API. Le client dispose d'une API-jeton et je pensais à l'aide de la norme Authorization - tête pour envoyer le jeton pour le serveur.

Normalement, cet en-tête est utilisé pour Basic et Digest d'authentification. Mais je ne sais pas si je suis autorisé à personnaliser la valeur de cet en-tête et d'utiliser un custom auth-régime d'e.g:

Authorization: Token 1af538baa9045a84c0e889f672baf83ff24

Recommanderiez-vous cette ou pas? Ou est-il une meilleure approche de l'envoi du jeton?

51voto

DaveRandom Points 45661

Vous pouvez créer vos propres auth schémas d'utilisation de l' Authorization: d'en - tête par exemple, c'est comment OAuth œuvres.

En règle générale, si les serveurs proxies ou ne comprennent pas les valeurs des en-têtes standard, ils vont les laisser seuls et de les ignorer. Il est de la création de votre propre en-tête de touches qui peuvent souvent produire des résultats inattendus - beaucoup de procurations bande-têtes avec les noms qu'ils ne reconnaissent pas.

Cela dit, il est probablement une meilleure idée de l'utilisation de cookies pour transmettre le jeton, plutôt que de l' Authorization: - tête, pour la simple raison que les cookies ont été explicitement conçus pour transporter des valeurs personnalisées, tandis que la spécification HTTP intégré dans auth méthodes ne dit pas vraiment de toute façon - si vous voulez voir exactement ce qu'il ne dit, jetez un oeil ici.

L'autre point, c'est que beaucoup de client HTTP bibliothèques ont un support intégré pour la Digérer et l'authentification Basique, mais peut rendre la vie plus difficile lorsque vous tentez de définir une valeur brute dans le champ d'en-tête, alors qu'ils seront tous de fournir la facilité de soutien pour les cookies et permettra à plus ou moins n'importe quelle valeur à l'intérieur d'eux.

2voto

Julian Reschke Points 12698

Je recommande de ne pas utiliser l'authentification HTTP avec le modèle personnalisé noms. Si vous sentez que vous avez quelque chose de générique à utiliser, vous pouvez définir un nouveau schéma, si. Voir http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p7-auth-latest.html#rfc.section.2.3 pour plus de détails.

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