22 lines
853 B
C#
22 lines
853 B
C#
using System.Net.Http.Headers;
|
|
using Blazored.LocalStorage;
|
|
|
|
namespace HealthcareManagerUiWebAssem;
|
|
|
|
public class AuthenticationHttpMessageHandler(ILocalStorageService localStorageService, ApplicationSettings apiSettings)
|
|
: DelegatingHandler
|
|
{
|
|
protected override async Task<HttpResponseMessage> 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<string>("authToken", cancellationToken);
|
|
if (!string.IsNullOrEmpty(token))
|
|
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
|
|
|
return await base.SendAsync(request, cancellationToken);
|
|
}
|
|
} |