web-dev-qa-db-fra.com

OAuth 2.0 En-tête d'autorisation

Je souhaite développer un SDK qui encapsule les fonctions OAuth 2.0. J'ai vérifié les différences entre OAuth 1.0 et 2.0, et j'ai une certaine confusion sur les en-têtes d'autorisation ( 1. et 2. ), OAuthLes paramètres de protocole _ _ 1.0 peuvent être transmis à l'aide de l'en-tête HTTP "Authorization", mais je ne parviens pas à trouver cela décrit dans le brouillon actuel OAuth 2.0.

Est-ce que OAuth 2.0 prend en charge les en-têtes d'autorisation?

Dans OAuth 1.0, votre en-tête ressemblerait à ceci:

Authorization: OAuth realm="Example",
    oauth_consumer_key="0685bd9184jfhq22",
    oauth_token="ad180jjd733klru7",
    oauth_signature_method="HMAC-SHA1",
    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
    oauth_timestamp="137131200",
    oauth_nonce="4572616e48616d6d65724c61686176",
    oauth_version="1.0"
85
JKhuang

Pour ceux qui recherchent un exemple sur la manière de passer l'autorisation OAuth2 (jeton d'accès) dans l'en-tête (par opposition à l'utilisation d'un paramètre request ou body), voici comment procéder:

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
190
Jonathan

Vous pouvez toujours utiliser l'en-tête Authorization avec OAuth 2.0. Un type de porteur est spécifié dans l'en-tête d'autorisation à utiliser avec les jetons porteur OAuth (signifiant que l'application client doit simplement présenter ("supporter" le jeton)). La valeur de l'en-tête est le jeton d'accès que le client a reçu du serveur d'autorisations.

C'est documenté dans cette spécification: https://tools.ietf.org/html/rfc6750#section-2.1

Par exemple.:

   GET /resource HTTP/1.1
   Host: server.example.com
   Authorization: Bearer mF_9.B5f-4.1JqM

mF_9.B5f-4.1JqM est votre jeton d'accès OAuth.

34
Scott T.