#credentials #blazor-webassembly
Вопрос:
Я пытаюсь настроить свой http-клиент для отправки токена jwt
использование этого кода
public class HttpClientWithToken
{
public HttpClientWithToken(HttpClient httpClient)
{
HttpClient = httpClient;
}
public HttpClient HttpClient { get; }
}
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddHttpClient<HttpClientWithToken>(
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
ConfigureServices(builder.Services);
var host = builder.Build();
await host.RunAsync();
}
Я получаю сообщение об ошибке : «нет службы для типа «microsoft.aspnetcore.components.webassembly.authentication.baseaddressauthorizationmessagehandler’ зарегистрирован»
Использование этого кода
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddSingleton<BaseAddressAuthorizationMessageHandler>();
builder.Services.AddHttpClient<HttpClientWithToken>(
client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
ConfigureServices(builder.Services);
var host = builder.Build();
await host.RunAsync();
}
Я получаю сообщение об ошибке : «Не удалось разрешить службу для типа «Microsoft.AspNetCore.Компоненты.Веб-сборка.Идентификация.IAccessTokenProvider «при попытке активировать» Microsoft.AspNetCore.Компоненты.Веб-сборка.Идентификация.Базовый адрес авторизацияmessagehandler’.»
Что я упускаю? Исходя из примера, за которым я следую, первый код должен отправлять носителя в заголовках.
Я могу вызвать свой api и получить токен на предъявителя при настройке HttpClient.По умолчанию требуются исполнители.Авторизация, но я не могу получить токен, используя конфигурацию.