Ich teste eine Implementierung der JWT-Token-basierten Sicherheit basierend auf dem folgenden Artikel . Ich habe erfolgreich ein Token vom Testserver erhalten. Ich kann nicht herausfinden, wie das Chrome POSTMAN REST Client-Programm das Token im Header senden soll.
Meine Fragen lauten wie folgt:
1) Verwende ich den richtigen Headernamen und / oder die richtige POSTMAN-Schnittstelle?
2) Muss ich das Token auf Basis 64 codieren? Ich dachte, ich könnte den Token einfach zurückschicken.
Antworten:
Verwenden Sie für den Anforderungsheadernamen einfach die Autorisierung. Platziere den Träger vor dem Token. Ich habe es gerade ausprobiert und es funktioniert für mich.
Autorisierung: Inhaber TOKEN_STRING
Jeder Teil des JWT ist ein base64url-codierter Wert.
quelle
Hier ist ein Bild, wenn es hilft :)
Aktualisieren:
Das Postboten-Team hat "Träger-Token" zur "Registerkarte" Autorisierung "hinzugefügt:
quelle
Ich füge dieser Frage einen kleinen interessanten Tipp hinzu, der euch beim Testen von JWT Apis helfen kann.
Es ist eigentlich sehr einfach.
Wenn Sie sich in Ihrer API (Anmeldeendpunkt) anmelden, erhalten Sie sofort Ihr Token. Wie @ mick-cullen sagte, müssen Sie das JWT in Ihrem Header wie folgt verwenden:
Wenn Sie nun Ihre Tests automatisieren oder nur vereinfachen möchten, können Sie bei Ihren Tests das Token als globales Element speichern, das Sie auf allen anderen Endpunkten aufrufen können:
Am Postboten: Erstellen Sie dann im Postboten eine globale Variable als jwt_token = TOKEN_STRING.
Auf Ihrem Anmeldeendpunkt: Um dies nützlich zu machen, fügen Sie am Anfang der Registerkarte Tests Folgendes hinzu:
Ich vermute, dass Ihre API das Token als JSON für die Antwort zurückgibt: {"jwt_token": "TOKEN_STRING"}, es kann eine Variation geben.
In der ersten Zeile fügen Sie die Antwort zur Datenvariable hinzu. Bereinigen Sie Ihr Global und weisen Sie den Wert zu.
Jetzt haben Sie Ihr Token für die globale Variable, was die Verwendung von Authorization: Bearer {{jwt_token}} auf allen Endpunkten vereinfacht.
Hoffe dieser Tipp hilft.
EDIT
Etwas zu lesen
Über Tests auf Postman: Testbeispiele
Befehlszeile: Newman
CI: Integration mit Jenkins
Schöner Blogbeitrag: Master API Test Automation
quelle
Test
Registerkarte und der Postman-Codierung nicht vertraut . Gibt es eine Ressource, die Sie empfehlen, um damit zu beginnen?Ich hatte das gleiche Problem in
Flask
und nachdem ich die ersten beiden Lösungen ausprobiert hatte, die gleich waren (Authorization: Bearer <token>
), und bekam dies:Ich habe es endlich geschafft, es zu lösen mit:
Ich dachte, es könnte Menschen, die auf dasselbe stoßen, Zeit sparen.
quelle
Authentication credentials were not provided
an zudjango
benutzenBearer <token>
. gelöst mitjwt <token>
. Danke für die LösungHier erfahren Sie, wie Sie das Token automatisch festlegen
Auf Ihrer Login / Auth-Anfrage
Dann für authentifizierte Seite
quelle
Wenn Sie den Postboten verwenden möchten, verwenden Sie die Überschriften als solche
Schlüssel: Autorisierung
Wert: jwt {Token}
so einfach ist das.
quelle
Für Benutzer, die das WordPress-Plugin Advanced Access Manager verwenden , um die JWT-Authentifizierung zu öffnen.
Das Feld Header sollte Authentifizierung anstelle von Autorisierung enthalten
AAM erwähnte es in ihrer Dokumentation ,
Hoffe es hilft jemandem! Vielen Dank für andere Antworten hat mir auch sehr geholfen !!
quelle
Getan!
quelle
Alles andere dh. Params, Authorization, Body, Pre-Request Script, Tests ist leer. Öffnen Sie einfach die Registerkarte Headers und fügen Sie sie wie in der Abbildung gezeigt hinzu. Dies gilt auch für GET-Anfragen.
quelle
Irgendwie hat der Postbote bei mir nicht funktioniert. Ich musste eine Chrome-Erweiterung namens RESTED verwenden, die funktionierte.
quelle
Ich habe getan, wie Moplin es erwähnt hat. Aber in meinem Falldienst habe ich die JWT in Antwort-Headern als Wert unter dem Schlüssel "Authorization" gesendet.
Was ich getan habe war, eine globale Variable in Postbote als zu machen
Fügen Sie in der Anmeldeanforderung-> Registerkarte "Tests" hinzu
Wählen Sie bei anderen Anfragen die Registerkarte Überschriften und geben Sie
quelle
In der neuesten Version von Postman (7 ++) befindet sich möglicherweise kein Trägerfeld in der Autorisierung. Gehen Sie also zur Registerkarte Kopfzeile
Wählen Sie den Schlüssel als Autorisierung und schreiben Sie im Wert JWT
quelle
Bearer Token
Helfer auf derAuthorization
Registerkarte. Wenn Sie den Token-Wert hier hinzufügen (fest codiert oder als dynamische Variable), wird derselbeAuthorization
Header für die Anforderung erstellt.