SignalR основные требования JWT - PullRequest
0 голосов
/ 25 февраля 2019
cfg.Events = new JwtBearerEvents
                    {
                        OnMessageReceived = context =>
                        {
                            var accessToken = context.Request.Query["access_token"];

                            // If the request is for our hub...
                            var path = context.HttpContext.Request.Path;
                            if (!string.IsNullOrEmpty(accessToken) &&
                                (path.StartsWithSegments("/sas")))
                            {
                                // Read the token out of the query string
                                context.Token = accessToken;
                            }

                            return Task.CompletedTask;
                        }
                    };

в своем концентраторе я пытался получить подобные утверждения

Context.User.Claims

, но они пустые

, так есть ли возможность получить мои утверждения JWT в моем концентраторе сигналов?

1 Ответ

0 голосов
/ 15 мая 2019

У меня была похожая проблема, и я решил ее, заменив это:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)

на:

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})

По какой-то причине мне пришлось явно определить DefaultAuthenticateScheme.Я до сих пор не знаю, почему DefaultAuthenticateScheme не откатился автоматически до DefaultScheme, как следует из документации.Если я выясню причину, я обновлю ответ.

...