2012-06-17 23 views
64

Deseo desarrollar un SDK que encapsule las funciones de OAuth 2.0. He comprobado las diferencias entre OAuth 1.0 & 2.0, y tengo cierta confusión en Encabezado de autorización (1.0 y 2.0), los parámetros del protocolo OAuth 1.0 se pueden transmitir usando el encabezado HTTP "Autorización", pero no puedo encontrar esto descrito en borrador actual de OAuth 2.0.OAuth 2.0 Authorization Header

¿OAuth 2.0 admite encabezados de autorización?

En OAuth 1.0 su cabecera se vería así:

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" 
+0

responder su pregunta, pero ya hay una cantidad de bibliotecas OpenId y OAuth, ¿está seguro de que quiere reinventar la rueda? – Kane

+0

Hola Kane, no estoy desarrollando SDK para OAuth, solo necesito alguna función de OAuth en mi SDK, por lo que no quiero presentar una biblioteca de terceros. – JKhuang

Respuesta

20

Puede seguir utilizando el encabezado de autorización OAuth 2.0. Hay un tipo de portador especificado en el encabezado Autorización para usar con tokens de portador OAuth (lo que significa que la aplicación cliente simplemente tiene que presentar ("soportar") el token). El valor del encabezado es el token de acceso que el cliente recibió del Servidor de autorización.

se documenta en esta especificación: https://tools.ietf.org/html/rfc6750#section-2.1

ej .:

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

Dónde mF_9.B5f-4.1JqM es su token de acceso OAuth.

138

Para aquellos que buscan un ejemplo de cómo pasar la autorización OAuth2 (token de acceso) en la cabecera (en lugar de utilizar una petición o parámetro corporal), aquí es cómo se hace:

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 
No
+26

Para cualquiera que haya encontrado este hilo tratando de usar el Encabezado de Autorización con cURL, Aquí está el comando: 'curl -H" Autorización: Portador $ ACCESS_TOKEN "URI' – ChitownDev

+4

Pregunta rápida, ya que sigo viendo respuestas como esta, pero sin la aclaración: si estoy haciendo esto en el código (a través de API HTTPRequest), agrego encabezados a mi solicitud con un nombre de encabezado y un campo de datos asociado. En esta respuesta, ¿qué parte es el nombre del encabezado y qué datos? Es decir, ¿el encabezado 'Authorization: Bearer' con' 0b ... 42' como datos, o el encabezado 'Authorization:' con 'Bearer 0b ... 42' como datos, o qué? ¡Gracias! (Por cierto, soy Oauth2, si es importante) – Olie

+5

'Autorización' es el nombre del encabezado, los dos puntos separan el nombre del valor en todos los encabezados según [la sección 4.2 de RFC2616] (http: //docs.huihoo. com/http/rfc2616-http-1.1/rfc2616-sec4.html). –

Cuestiones relacionadas