Что такое схемы аутентификации клиента Javascript SignalR по умолчанию? - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть два клиента для моего приложения SignalR: клиент Javascript для веб-браузеров и клиент Android ( Gurgen / SignalR-.net-core-android-client ), которые используют аутентификацию JWT Bearer.

Я добавил этот атрибут в мой SignalR Hub:

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme + "," + CookieAuthenticationDefaults.AuthenticationScheme)]
public class MyHub : Hub

И мой Startup.cs файл:

        public void ConfigureServices(IServiceCollection services)
        {
        //…
        services.AddAuthentication()
            .AddCookie(cfg => cfg.SlidingExpiration = true)
            .AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata = false;
                options.SaveToken = true;
                options.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidIssuer = Configuration["Tokens:Issuer"],
                    ValidAudience = Configuration["Tokens:Issuer"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"]))
                };
            });
        services.AddSignalR();
        //…

Клиент Android успешно вошел в систему с носителем аутентификации заголовкамаркер. Но веб-клиенту не удалось подключиться к концентратору (401 не авторизован).

Когда я удаляю атрибут [Authorize], клиент javascript работает!

Что такое Javascript SignalR Client по умолчаниюAuthenticationScheme?Или в чем проблема, с которой я столкнулся?

Я использую dotnet core 2.1, Microsoft.AspNetCore.SignalR, а моей IDE является Visual Studio для Mac.

...