. NET Core 3.1 Web API и аутентификация JWT на стороне сервера Blazor - PullRequest
2 голосов
/ 25 марта 2020

Хотелось бы понять, как можно настроить JWT аутентификация для Blazor Server Side Apps ?

Позвольте мне Нарисуйте пример. Допустим, у нас есть проект. NET Core 3.1 Web API. Проект имеет собственную реализацию TokenController, которая выдает JWT для правильной комбинации пользователя и пароля. Всем остальным контроллерам требуется такой токен для каждого запроса.

Промежуточное программное обеспечение для проверки подлинности настроено следующим образом:

// enabling JWT bearer scheme
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options => 
    {
        options.TokenValidationParameters = new TokenValidationParameters 
        {
            // TOKEN VALIDATION PARAMETERS
        };
    });

// applying default authentication policy
services.AddMvc(o => 
{
    o.EnableEndpointRouting = false;
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    o.Filters.Add(new AuthorizeFilter(policy));
}).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

Вплоть до этого, это работает прекрасно.

Теперь я хотел бы добавить в этот проект красивый пользовательский интерфейс Blazor Server Side, и я просто не могу обдумать, как тогда выполнить аутентификацию?

Согласно Microsoft Docs, Предполагается, что аутентификация для серверных приложений выполняется при установлении соединения SignalR:

Аутентификация Blazor Server

Приложения Blazor Server работают в режиме реального времени. соединение, созданное с помощью SignalR. Аутентификация в приложениях на основе SignalR обрабатывается, когда соединение установлено. Аутентификация может быть основана на поваре ie или каком-либо другом токене на предъявителя.

(источник: https://docs.microsoft.com/en-us/aspnet/core/security/blazor/?view=aspnetcore-3.1&tabs=visual-studio)

К сожалению, я не могу понять, как это работает - я нашел учебники и советы для Client Side Blazor или использую Cook ie / Identity ...

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...