gpt4 book ai didi

c# - 从 SignalR 请求中检索持有者 jwt token

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:10 27 4
gpt4 key购买 nike

我需要从 SignalR 请求中检索 jwt token 。我需要这个不是为了验证(这工作正常),而是为了 token 上的进一步任务。理想情况下,如果我可以在集线器级别检索它。

我的 Hub 类

    [Authorize(AuthenticationSchemes = "Bearer")]
public class MyHub : Hub
{
private readonly IMyService _myService;

public myHub(IMyService myService)
{
_myService = myService;
}

public async Task GetSomething()
{
await Clients.Caller.SendAsync("GetSomething", await _myService.GetSome();
}
}

最佳答案

这应该可行,您可以在集线器方法中完成:

    var httpContext = Context.GetHttpContext();
if (httpContext.Request.Headers.TryGetValue("Authorization", out var authorizationValues))
{
var tokenWithBearer = authorizationValues.FirstOrDefault(s => s.Contains("Bearer", StringComparison.InvariantCultureIgnoreCase));
if (tokenWithBearer != null)
{
// now trunc it at left to remove "Bearer " and get your token
}
}

在 Microsoft.AspNetCore.SignalR 中使用扩展方法 GetHttpContext() 完成,希望您也能在 Core 中。

关于c# - 从 SignalR 请求中检索持有者 jwt token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58555215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com