public override async Task <AuthenticationState> GetAuthenticationStateAsync()
        {
            SavedToken savedToken = await GetTokenAsync();

            if (string.IsNullOrWhiteSpace(savedToken.SavedLR.AccessToken))
            {
                firstTimeThrough = false;
                return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
            }
            if (firstTimeThrough)
            {
                firstTimeThrough = false;
                await MarkUserAsAuthenticated(savedToken);
            }
            return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity(savedToken.Claims, "apiauth"))));
        }
        private async Task MarkUserAsAuthenticated(SavedToken savedToken)
        {
            var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.NameIdentifier, savedToken.SavedLR.UserId) }, "apiauth"));

            authenticatedUser.AddIdentity(new ClaimsIdentity(JwtParserHelper.ParseClaimsFromJwt(savedToken.SavedLR.AccessToken), "apiauth"));

            var authState = Task.FromResult(new AuthenticationState(authenticatedUser));
            await _localStorage.SetItemAsync("authToken", savedToken.SavedLR.AccessToken);

            await _localStorage.SetItemAsync("refreshToken", savedToken.SavedLR.RefreshToken);

            await _localStorage.SetItemAsync("expireIn", savedToken.SavedLR.ExpiresIn);

            //await _jsRuntime.InvokeAsync<object>("RemoveUnusedParams");
            await _jsRuntime.InvokeMethod("RemoveUnusedParams");

            _genericRepository.SetResponse(savedToken.SavedLR);
            NotifyAuthenticationStateChanged(authState);
        }
        //Public interface...no need for claims to be exposed
        public async Task MarkUserAsAuthenticated(LoginResponse lr)
        {
            SavedToken st = ParseToken(lr);

            await MarkUserAsAuthenticated(st);
        }