【发布时间】:2020-03-31 07:15:57
【问题描述】:
我们在 Web API (netcoreapp2.2) 中使用 ASPNETCore.SignalR 1.1.0。
身份验证:我们正在为我们的项目使用 IdentityServer4 身份验证。
启动.cs
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://IdentityServerDomainURL:8081/";
options.RequireHttpsMetadata = false;
options.ApiName = "name";
options.ApiSecret = "secret";
});
在 WebAPI 应用程序中,我们添加了 SignalR Hub。 JavaScript 客户端连接到此集线器。 以下是JS客户端连接hub的代码。
var connection = new signalR.HubConnectionBuilder()
.withUrl("http://localhost:52177/SignalRHub/",
{
accessTokenFactory: () => "referencetokenValue"
}).build();
JS 客户端在连接到 Hub 时正在传递引用令牌。 我们需要在 WebAPI 项目中对 SignalR 使用 Reference token 认证。
在 Microsoft 的站点中,仅提供了 SignalR 的 JWT 令牌身份验证文档。在任何地方都没有找到任何关于参考令牌的文档。
需要帮助在 startup.cs 文件中添加参考令牌身份验证配置。
【问题讨论】:
-
您可以参考this document 并尝试使其支持引用令牌。
-
@FeiHan 谢谢你的回复。这个文件我看过。问题是信号器 JS 客户端在查询字符串中传递引用令牌。预期的行为是令牌应该出现在 Header 中。 Microsoft 已使用 JWT 令牌 link 提供了针对此问题的解决方案。但没有提供任何参考令牌的解决方案。
标签: c# authentication signalr bearer-token asp.net-core-signalr