Files
FACULTATE-HEALTHCARE_MANAGER/frontend/AuthenticationHttpMessageHandler.cs
T
2024-05-21 12:10:53 +03:00

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);
}
}