我有一个在自托管应用上运行的webapi,通过oauth提供的安全性,我正在设置用于调用API的授权标头。这很好用,我们在所有电话上都有用户身份。
现在我可以通过查询字符串或cookie(或某些连接类型的标头)将相同的授权令牌传递给signalr(在同一个应用程序中自托管)。
令牌到达服务器以获取信号器,我可以将其添加到context.cookie或标题中。
但是..我可以通过它来创建一个经过身份验证的用户,我似乎被401错误所困扰
我假设我错过了一段代码,这些代码应该使用令牌并为signalr创建一个经过身份验证的用户(即使webapi / owin自己也这样做了)。
有没有人有任何指针,或者说信号器在自主机上与oauth一起工作的例子?
答案 0 :(得分:0)
你是正确的,你需要设置一种方法来验证和设置用户希望使用SignalR与OAuth。
您可以为SignalR创建客户AuthorizeAttribute。 在其中,您基本上可以获取查询字符串以获取令牌,一旦您拥有令牌,您可以取消保护它并开始验证它并在请求中设置用户上下文。
我在
有一个例子一旦实现,您只需使用[QueryStringBearerAuthorize]
装饰您的集线器github链接有一个完整的工作示例,可能会提供一些有价值的见解。