using DiunaBI.UI.Shared.Services; namespace DiunaBI.UI.Shared.Handlers; public class AuthenticationHandler : DelegatingHandler { private readonly TokenProvider _tokenProvider; public AuthenticationHandler(TokenProvider tokenProvider) { _tokenProvider = tokenProvider; } protected override async Task SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) { // Get token from TokenProvider var token = _tokenProvider.Token; Console.WriteLine($"🔐 AuthenticationHandler: Token = {(string.IsNullOrEmpty(token) ? "NULL" : $"{token[..Math.Min(20, token.Length)]}...")}"); if (!string.IsNullOrEmpty(token)) { request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); Console.WriteLine($"🔐 AuthenticationHandler: Added Bearer token to request"); } else { Console.WriteLine($"🔐 AuthenticationHandler: No token available, request will be unauthorized"); } return await base.SendAsync(request, cancellationToken); } }