using System.Net.Http.Headers; using Blazored.LocalStorage; namespace HealthcareManagerUiWebAssem; public class AuthenticationHttpMessageHandler(ILocalStorageService localStorageService, ApplicationSettings apiSettings) : DelegatingHandler { protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // Add API key to request headers request.Headers.Add("ApiKey", apiSettings.ApiKey); // Retrieve JWT token from local storage var token = await localStorageService.GetItemAsync("authToken", cancellationToken); if (!string.IsNullOrEmpty(token)) request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); return await base.SendAsync(request, cancellationToken); } }