Verwenden JWT (Authorization: Bearer) in Fors in ASP.NET Kern
Ich bin der Erstellung einer REST-api in ASP.NET Core 1.0. Ich war mit Swagger zu testen, aber jetzt habe ich Hinzugefügt JWT Berechtigung für einige Strecken. (mit UseJwtBearerAuthentication
)
Ist es möglich, ändern Sie den header der Swagger-Anforderungen, so dass die Routen mit den [Authorize]
Attribut getestet werden können?
InformationsquelleAutor Rubanov | 2016-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kämpfte ich mit dem gleichen problem und fand eine funktionierende Lösung in diesem Beitrag:
http://blog.sluijsveld.com/28/01/2016/CustomSwaggerUIField
Es kommt darauf an, fügen Sie diese in Ihre configurationoptions
und den code für den operationfilter
Dann werden Sie sehen, eine zusätzliche Genehmigung TextBox in Ihr-Arroganz, wo Sie fügen Sie Ihre token in der Form " Träger {jwttoken}', und Sie sollten berechtigt sein, in Ihrem Fors-Anfragen.
Nur einen schnellen Helfer; mit Microsoft.AspNetCore.Mvc.Genehmigung; die Verwendung von Swashbuckle.AspNetCore.Stolzieren; mit Swashbuckle.AspNetCore.SwaggerGen; verwenden von System.Sammlungen.Generic; using System.Linq;
Danke @HansVG es funktioniert Super.
Wie können wir automatisch die Zuordnung der Träger <token> der in der authorization-Feld?
ja, das funktioniert, ist aber umständlich. Wie @hubert17 hinzufügen möchte ich, dass das token auf die Anfrage automatisch. Dies ist die Arbeit in einem 4.5.2-api, aber nicht unter core 2.0.
InformationsquelleAutor HansVG
Erweitern HansVG Antwort, die für mich gearbeitet (danke) und da habe ich nicht genug Beitrag Punkte, die ich nicht beantworten kann, emseetea Frage direkt. Sobald Sie die Genehmigung textbox müssen Sie zum Aufruf der Endpunkt generiert das token, die außerhalb Ihrer müssen [Autorisieren] Bereich der Endpunkte.
Sobald Sie angerufen haben, der Endpunkt generiert das token von dem Endpunkt, den Sie kopieren können es sich die Ergebnisse für diesen Endpunkt. Dann haben Sie die token zu verwenden, in den anderen Bereichen werden müssen [Autorisieren]. Fügen Sie es in das Textfeld ein. Stellen Sie sicher, HansVG erwähnt, fügen Sie es in das richtige format, die muss "Stütze ". Format = "bearer {token}".
InformationsquelleAutor Timm Hagen
Derzeit Swagger hat die Funktionalität für die Authentifizierung mit JWT-token und kann automatisch hinzufügen token in den header (ich bin mit Swashbuckle.AspNetCore 1.1.0).
Folgender code sollte helfen, dies zu erreichen.
In den Autostart.ConfigureServices():
Überprüfen und konfigurieren TokenUrl wenn Ihr Endpunkt ist anders.
In den Autostart.Configure():
Wenn Ihr Endpunkt für die Authentifizierung durch token folgt der OAuth2 standard ist, sollte alles funktionieren. Aber nur für den Fall, ich habe Probe dieser Endpunkt:
Bitte überprüfen Sie, dass die Rückkehr HTTP-status-code 400, wenn die Autorisierung fehlgeschlagen ist. Es ist Vorgabe von RFC 6749 und Swagger auch verarbeiten. Ich habe aktualisiert die Antwort.
Ja, ich benutze IdentityServer 4 und es gibt 400. Aber swagger-UI zeigt Logout-button, wenn der Benutzer erfolgreich angemeldet hat. Ich bin mir nicht sicher, wie Sie Sie in der config, dass swagger popup-Fenster zu zeigen, ist die Authentifizierung fehlgeschlagen.
Ich habe Angst, aber ich habe keine neuen Ideen. Wie Sie sehen können, habe ich beschlossen, meine eigene Implementierung des Authentifizierung-Methode (wie werde ich mehr frei mit DB-Wrapper und-schema). Fors funktioniert einwandfrei mit meinem token-Endpunkt mit Ausnahme ein Teil aktualisieren Sie das token, das scheint nicht implementiert ist.
InformationsquelleAutor Pavel K.