2017-10-13 3 views
0

Die Post ist fast doppelt wie this Frage, aber ich benutze neue SignalRCore (1.0.0 alpha2).
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha2-final" />JWT Authentifizierung in SignalR Core von Angular

In meinem .NET Core 2.0 benutze ich OpenIddict, um Benutzer auf dem Server zu authentifizieren. Auf dem Client verwende ich angular2-jwt.

Jetzt muss ich wissen, wie kann ich auf Server mit Authorization header access_token verbinden? Ich würde annehmen, dass ich kundenspezifischen Anforderungsheader verwenden sollte, wenn ich versuche, mich auf dem Server zu verbinden.

Kann dies mit dem neuen SignalR Core geschehen? Ich fand this Thread, die erwähnen, dass Websockets benutzerdefinierte Header nicht unterstützt, aber ich frage mich, ob SignalR Core-Team hat einige magische Unterstützung dieses Szenario.

Antwort

2

Dies ist nicht möglich, wenn Sie den JavaScript-Client verwenden, da einige zugrunde liegende APIs (wie webSocket) das Setzen von Kopfzeilen nicht zulassen. Aus diesem Grund müssen Sie queryString verwenden. Auch diese thread on github kann nützlich sein.

Wenn Sie die C# -Client-Einstellung Header verwenden, ist im Moment nicht möglich, aber dies ist nur eine Einschränkung der API und sollte in der Zukunft behoben werden.

EDIT

SignalR hat jetzt API, C# und JavaScript-Client-Token JWT passieren lässt. Es ist jetzt auch möglich, Header zu setzen, wenn Sie einen C# -Client verwenden.

Verwandte Themen