Клиент SignalR не работает после обновления до ядра 3.1

Недавно мы обновили наш код на стороне сервера до asp.net core 3.1. Теперь возникла проблема с клиентом java-скрипта для signalr (@microsoft/signalr 3.1.0).

Я получаю следующие ошибки:

Код для инициализации хаба:

Фабрика токенов доступа возвращает токен из msal. (В аутентификацию не было внесено никаких изменений, и токен там получен правильно) Было бы здорово, если бы кто-нибудь мог мне помочь с этим.

2 ответа

Я использую клиент javascript @ aspnet / signalr - ту же версию, что и Nuget сервера. Не знаю почему, но не смог заставить его работать с @ microsoft / signalr.

Проверьте свой запуск, для меня аутентификация не удалась, потому что я забыл добавить AllowCredentials на Cors:

public void ConfigureServices(IServiceCollection services)
{
        services
            .AddControllers();
        services.AddCors(options => options.AddPolicy("CorsPolicy", builder =>
        {
            builder
                .AllowAnyMethod() //edit on your requirements
                .AllowAnyHeader() //edit on your requirements
                .AllowAnyOrigin() //edit on your requirements
                .AllowCredentials();
        }));
        services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();
}

Я получал ту же ошибку, и в конечном итоге проблема заключалась в длине access_tokenчто он передается в параметре запроса, см. эту проблему .

Итак, чтобы решить эту проблему, проверьте этот ответ

Другие вопросы по тегам