Sie können Ihre eigenen benutzerdefinierten Authentifizierungsschemata erstellen, die den Authorization:
Header verwenden. So funktioniert OAuth beispielsweise .
Wenn Server oder Proxys die Werte von Standardheadern nicht verstehen , lassen sie diese in der Regel in Ruhe und ignorieren sie. Es werden eigene Header- Schlüssel erstellt , die häufig zu unerwarteten Ergebnissen führen können. Viele Proxys entfernen Header mit Namen, die sie nicht erkennen.
Trotzdem ist es möglicherweise eine bessere Idee, Cookies zum Übertragen des Tokens anstelle des Authorization:
Headers zu verwenden, aus dem einfachen Grund, dass Cookies explizit so konzipiert wurden, dass sie benutzerdefinierte Werte enthalten, während die Spezifikation für die integrierten Authentifizierungsmethoden von HTTP nicht wirklich besagt So oder so - wenn Sie genau sehen möchten, was es sagt, schauen Sie hier .
Der andere Punkt dabei ist, dass viele HTTP-Client-Bibliotheken eine integrierte Unterstützung für Digest- und Basic-Authentifizierung haben, aber das Leben möglicherweise schwieriger machen, wenn versucht wird, einen Rohwert im Header-Feld festzulegen, während sie alle eine einfache Unterstützung für Cookies und Willen bieten Erlaube mehr oder weniger irgendeinen Wert in ihnen.
Authorization:
Headers) ist pro Domäne. Dies bedeutet, dass, wenn Sie die Domäne des Cookies auf "diese Domäne" und den Pfad auf "/" setzen, der Bereich mit dem der HTTP-Authentifizierung identisch ist. Es liegt jedoch wirklich an Ihnen - aber wie Julian Reschke betont, sollten Sie wahrscheinlich kein neues Authentifizierungsschema definieren, es sei denn, Siefeel that you have something of generic use
- etwas, das in einer anderen Anwendung verwendet werden könnte.Im Fall einer CROSS ORIGIN- Anfrage lesen Sie Folgendes :
Ich war mit dieser Situation konfrontiert und entschied mich zunächst für die Verwendung des
Authorization
Headers und entfernte ihn später, nachdem ich mit dem folgenden Problem konfrontiert war.Authorization
Der Header wird als benutzerdefinierter Header betrachtet. Wenn also eine domänenübergreifende Anfrage mit demAutorization
Header-Satz gestellt wird, sendet der Browser zuerst eine Preflight-Anfrage . Eine Preflight-Anforderung ist eine HTTP-Anforderung der OPTIONS-Methode. Diese Anforderung entfernt alle Parameter aus der Anforderung. Ihr Server muss mit einemAccess-Control-Allow-Headers
Header antworten , der den Wert Ihres benutzerdefinierten Headers (Authorization
Headers) hat.Für jede Anforderung, die der Client (Browser) sendet, wurde vom Browser eine zusätzliche HTTP-Anforderung (OPTIONS) gesendet. Dies hat die Leistung meiner API verschlechtert. Sie sollten überprüfen, ob das Hinzufügen dies Ihre Leistung beeinträchtigt. Um dieses Problem zu umgehen, sende ich Token in http-Parametern. Ich weiß, dass dies nicht der beste Weg ist, aber ich konnte keine Kompromisse bei der Leistung eingehen.
quelle
Authorization token
(sensiblen) Daten für meine Anwendung authentifizieren . Aus dem gleichen Grund sollten wir keine vertraulichen Daten in GET senden, wir sollten kein Autorisierungstoken in Parametern verwenden. Gemäß w3 w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3 "Das HTTP-Protokoll sollte keine GET-basierten Formulare für die Übermittlung vertraulicher Daten verwenden".Dies ist etwas veraltet, aber es gibt möglicherweise andere, die nach Antworten auf dieselbe Frage suchen. Sie sollten sich überlegen, welche Schutzbereiche für Ihre APIs sinnvoll sind. Beispielsweise möchten Sie möglicherweise den Zugriff von Clientanwendungen auf Ihre APIs identifizieren und authentifizieren, um deren Verwendung auf bekannte, registrierte Clientanwendungen zu beschränken. In diesem Fall können Sie die verwenden
Basic
Authentifizierungsschema mit der Client-ID als Benutzer-ID und dem gemeinsam genutzten Client-Geheimnis als Kennwort. Sie benötigen keine proprietären Authentifizierungsschemata, sondern identifizieren nur diejenigen, die von Clients für jeden Schutzbereich verwendet werden sollen. Ich bevorzuge nur eines für jeden Schutzbereich, aber die HTTP-Standards erlauben sowohl mehrere Authentifizierungsschemata für jede WWW-Authenticate-Header-Antwort als auch mehrere WWW-Authenticate-Header für jede Antwort. Dies ist für API-Clients verwirrend, welche Optionen verwendet werden sollen. Seien Sie konsistent und klar, dann werden Ihre APIs verwendet.quelle
Ich würde empfehlen, die HTTP-Authentifizierung nicht mit benutzerdefinierten Schemanamen zu verwenden. Wenn Sie der Meinung sind, dass Sie etwas von allgemeinem Nutzen haben, können Sie jedoch ein neues Schema definieren. Weitere Informationen finden Sie unter http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p7-auth-latest.html#rfc.section.2.3 .
quelle
Bitte versuchen Sie es unten mit Postboten: -
Im Header-Abschnitt Beispielarbeit für mich ..
Autorisierung: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyIkX18iOnsic3RyaWN0TW9kZSI6dHJ1ZSwiZ2V0dGVycyI6e30sIndhc1BvcHVsYXRlZCI6ZmFsc2UsImFjdGl2ZVBhdGhzIjp7InBhdGhzIjp7InBhc3N3b3JkIjoiaW5pdCIsImVtYWlsIjoiaW5pdCIsIl9fdiI6ImluaXQiLCJfaWQiOiJpbml0In0sInN0YXRlcyI6eyJpZ25vcmUiOnt9LCJkZWZhdWx0Ijp7fSwiaW5pdCI6eyJfX3YiOnRydWUsInBhc3N3b3JkIjp0cnVlLCJlbWFpbCI6dHJ1ZSwiX2lkIjp0cnVlfSwibW9kaWZ5Ijp7fSwicmVxdWlyZSI6e319LCJzdGF0ZU5hbWVzIjpbInJlcXVpcmUiLCJtb2RpZnkiLCJpbml0IiwiZGVmYXVsdCIsImlnbm9yZSJdfSwiZW1pdHRlciI6eyJkb21haW4iOm51bGwsIl9ldmVudHMiOnt9LCJfZXZlbnRzQ291bnQiOjAsIl9tYXhMaXN0ZW5lcnMiOjB9fSwiaXNOZXciOmZhbHNlLCJfZG9jIjp7Il9fdiI6MCwicGFzc3dvcmQiOiIkMmEkMTAkdTAybWNnWHFjWVQvdE41MlkzZ2l3dVROd3ZMWW9ZTlFXejlUcThyaDIwR09IMlhHY3haZWUiLCJlbWFpbCI6Im1hZGFuLmRhbGUxQGdtYWlsLmNvbSIsIl9pZCI6IjU5MjEzYzYyYWM2ODZlMGMyNzI2MjgzMiJ9LCJfcHJlcyI6eyIkX19vcmlnaW5hbF9zYXZlIjpbbnVsbCxudWxsLG51bGxdLCIkX19vcmlnaW5hbF92YWxpZGF0ZSI6W251bGxdLCIkX19vcmlnaW5hbF9yZW1vdmUiOltudWxsXX0sIl9wb3N0cyI6eyIkX19vcmlnaW5hbF9zYXZlIjpbXSwiJF9fb3JpZ2luYWxfdmFsaWRhdGUiOltdLCIkX19vcmlnaW5hbF9yZW1vdmUiOltdfSwiaWF0IjoxNDk1MzUwNzA5LCJleHAiOjE0OTUzNjA3ODl9.BkyB0LjKB4FIsCtnM5FcpcBLvKed_j7rCCxZddwiYnU
quelle
that article full of misleadings
,a lot of his points does not make sense
usw. in irgendeiner Weise ( das heißt, es ist wahrscheinlich etwas über einen Kommentar hier). Vielleicht könntest du eine Antwort oder einen Blog-Beitrag schreiben? Es wäre wirklich interessant, Argumente zu vergleichen.