using Blazored.LocalStorage; using DotBased.Logging; using Microsoft.AspNetCore.Components.Authorization; using SharpRSS.Business.Services; using ILogger = DotBased.Logging.ILogger; namespace SharpRSS.Blazor.Auth; public class SRSSAuthenticationStateProvider : AuthenticationStateProvider { public SRSSAuthenticationStateProvider(IHttpContextAccessor contextAccessor, AuthService authService, ILocalStorageService localStorageService) { _logger = LogService.RegisterLogger(typeof(SRSSAuthenticationStateProvider)); if (contextAccessor.HttpContext != null) _httpContext = contextAccessor.HttpContext; else { var ex = new ApplicationException("HttpContext is null! Cannot setup authentication state provider!"); _logger.Fatal(ex, "Failed to initialize authentication state provider!"); throw ex; } _authService = authService; _localStorageService = localStorageService; } /* * Services */ private readonly ILogger _logger; private readonly HttpContext _httpContext; private readonly AuthService _authService; private readonly ILocalStorageService _localStorageService; /* * Consts */ private const string AuthIdName = "srss_auth_id"; public override Task GetAuthenticationStateAsync() { throw new NotImplementedException(); } }