簡體   English   中英

從 SignalR 請求中檢索承載 jwt 令牌

[英]Retrieve bearer jwt token from SignalR request

我需要從 SignalR 請求中檢索 jwt 令牌。 我需要這個不是為了認證(這很好用),而是為了進一步的令牌任務。 理想情況下,如果我可以在 Hub 級別檢索它。

我的集線器 class

    [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 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM