RobotNet/RobotNet.WebApp/Helpers/ServiceCollectionExtensions.cs
2025-10-15 15:15:53 +07:00

28 lines
1.0 KiB
C#

using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using System.Net.Http.Headers;
namespace RobotNet.WebApp.Helpers;
public static class ServiceCollectionExtensions
{
public static IHttpClientBuilder AddAuthorizationHttpClient(this IServiceCollection services, string name, string baseAddress)
{
return services.AddHttpClient(name, client =>
{
client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
})
.AddHttpMessageHandler(sp =>
{
var tokenProvider = sp.GetRequiredService<IAccessTokenProvider>();
var navigation = sp.GetRequiredService<NavigationManager>();
var messageHandle = new AuthorizationMessageHandler(tokenProvider, navigation);
messageHandle.ConfigureHandler([baseAddress]);
return messageHandle;
})
.RemoveAllLoggers();
}
}