Benutzerdefinierter Token-Speicherort für JwtBearerMiddleware

8

Wir haben einen aufrufenden Client, der bei unserem System anfordert, das Bearer-Token nicht an der Standardstelle zu platzieren (Kopfzeile 'Authorization'). Ich möchte einen benutzerdefinierten Handler erstellen, der am richtigen Ort nach der JWT sucht. Neben dem Forking der JwtBearerMiddleware -Implementierung gibt es einen saubereren Weg, ich kann der Middleware nur mitteilen, welcher Handler verwendet werden soll.

Eine einfachere Option wäre, die Anforderung einfach neu zu schreiben, indem die JWT an der richtigen Stelle (der Anforderungsheader) in die Anfragepipeline injiziert wird, kurz bevor die JWT-Middleware läuft. Aber das scheint ein bisschen hacky.

    
Lutando 31.01.2017, 10:25
quelle

1 Antwort

5

Es gibt tatsächlich eine eingebaute Möglichkeit, dies zu tun, ohne den Code zu forchen oder zu versuchen, einen eigenen Handler bereitzustellen. Sie müssen lediglich einen Code in das OnMessageReceived -Ereignis einfügen:

%Vor%

Wenn Sie sich die Quelle , die Eigenschaft Token wird überprüft, nachdem der Event-Handler ausgeführt wurde. Wenn es null ist, setzt der Handler die Standardprüfung für den Autorisierungsheader fort.

    
Nate Barbettini 31.01.2017, 18:06
quelle