来自Angular的SignalR Core中的JWT验证

来自Angular的SignalR Core中的JWT验证

问题描述:

该帖子几乎与this相同,但我使用的是新的SignalRCore(1.0.0 alpha2)。
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha2-final" />来自Angular的SignalR Core中的JWT验证

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

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

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

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

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

编辑

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