【发布时间】:2017-05-02 18:26:20
【问题描述】:
我在 ASP .NET Core Web API 应用程序中使用 JWT 身份验证令牌。令牌由 API 本身生成,而不是由第三方生成。 我成功地将 SignalR 添加到堆栈中,但现在我需要对尝试执行服务器(集线器)方法的用户进行身份验证。 有人建议在 JavaScript 的“qs”属性中传递令牌。这对我不起作用,因为我们的令牌非常大(它们包含很多声明)。 我尝试编写一个自定义中间件来从有效负载中读取令牌并自动验证用户。问题是,当使用 WebSockets 时,中间件没有被执行。 任何想法都会有所帮助。
【问题讨论】:
-
这不是重复的,因为我根本无法使用查询字符串,我的令牌太长并且出现 414 错误。我想构建一个自定义中间件之类的东西,它从 SignalR 消息中提取令牌,然后让用户登录。
-
不幸的是,只有两种传递令牌的方法——查询字符串或作为参数。希望这将在下一版本的 SignalR 中得到解决。
-
可能是标头值?
-
MS提供的SignalR JS库不支持设置headers
标签: authentication asp.net-core authorization signalr jwt