2012-06-17 18 views
64

Ich möchte ein SDK entwickeln, das die OAuth 2.0-Funktionen kapselt. Ich habe die Unterschiede zwischen OAuth 1.0 & 2.0, und ich habe einige Verwirrung auf Authorization Header (1.0 und 2.0), OAuth 1.0 Protokollparameter können über die HTTP "Authorization" Header übertragen werden, aber ich kann nicht finden, beschrieben in aktueller OAuth 2.0-Entwurf.OAuth 2.0 Authorization Header

Unterstützt OAuth 2.0 Autorisierungsheader?

In OAuth 1.0 Ihr Kopf würde wie folgt aussehen:

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

beantworten Ihre Frage, aber es gibt bereits eine Reihe von OpenId und OAuth Bibliotheken da draußen. Möchten Sie das Rad wirklich neu erfinden? – Kane

+0

Hallo Kane, ich entwickle kein SDK für OAuth, ich brauche nur eine OAuth-Funktion in meinem SDK, also möchte ich keine dritte Teilbibliothek vorstellen. – JKhuang

Antwort

20

Sie noch den Authorization-Header mit OAuth 2.0 verwenden können. Es gibt einen Bearer-Typ, der im Authorization-Header für die Verwendung mit OAuth-Bearer-Tokens angegeben ist (was bedeutet, dass die Client-Anwendung das Token einfach präsentieren muss). Der Wert des Headers ist das Zugriffstoken, das der Client vom Autorisierungsserver erhalten hat.

Es ist in dieser Spezifikation dokumentiert: https://tools.ietf.org/html/rfc6750#section-2.1

Z. B .:

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

Wo mF_9.B5f-4.1JqM ist Token Ihr OAuth-Zugang.

138

für die Suche nach einem Beispiel, wie suchen, um die OAuth2 Berechtigung (Zugriffstoken) in der Kopfzeile zu übergeben (wie eine Anfrage oder Körperparameter zu verwenden im Gegensatz), hier ist, wie es gemacht wird: Nicht

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 
+26

Für jeden, der auf diesen Thread stieß, der versucht, den Authorization Header mit cURL zu verwenden, hier ist der Befehl: 'curl -H" Autorisierung: Bearer $ ACCESS_TOKEN "URI' – ChitownDev

+4

Schnelle Frage, wie ich Antworten wie diese sehe, aber ohne Die Klarstellung: Wenn ich dies in Code (über HTTPRequest API) mache, füge ich Header zu meiner Anfrage mit einem Header-Namen und einem zugehörigen Datenfeld hinzu. In dieser Antwort, welcher Teil ist der Name der Kopfzeile, und welche Daten? Das heißt, ist der Header 'Authorization: Bearer' mit' 0b ... 42' als Daten, oder ist der Header 'Authorization:' mit 'Bearer 0b ... 42' als Daten, oder was? Vielen Dank! (Btw, ich bin Oauth2, wenn es darauf ankommt.) – Olie

+5

'Autorisierung' ist der Header-Name, der Doppelpunkt trennt den Namen von dem Wert in allen Headern nach [Abschnitt 4.2 von RFC2616] (http: //docs.huihoo. com/http/rfc2616-http-1.1/rfc2616-sec4.html). –

Verwandte Themen