来自Angular的SignalR Core中的JWT认证

时间:2017-10-13 10:01:13

标签: authentication signalr jwt openiddict asp.net-core-signalr

帖子几乎与this问题重复,但我使用的是新的SignalRCore(1.0.0 alpha2)。
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha2-final" />

在我的.NET Core 2.0中,我使用OpenIddict对服务器上的用户进行身份验证。在客户端,我使用angular2-jwt

现在我需要知道如何在Authorization header access_token服务器上连接?我想在尝试连接服务器时应该使用自定义请求标头。

可以使用新的SignalR Core完成吗?我发现this线程提到websockets不支持自定义标头,但我想知道SignalR Core团队是否做了一些魔术来支持这种情况。

1 个答案:

答案 0 :(得分:2)

当您使用JavaScript客户端时,这是不可能的,因为某些底层API(如webSocket)不允许设置标头。这就是您需要使用queryString的原因。此外,此thread on github可能很有用。

如果您正在使用C#客户端设置标题目前是不可能的,但这只是API的限制,应该在将来修复。

修改

SignalR现在具有允许将JWT令牌传递给C#和JavaScript客户端的API。现在也可以在使用C#客户端时设置标题。