@page "/adminstart"; @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Utility @using Newtonsoft.Json @using System.IdentityModel.Tokens.Jwt @using AyCode.Interfaces.StorageHandlers; @using AyCode.Services.Loggers @using TIAM.Core.Loggers @inject NavigationManager NavManager @inject IJSRuntime JSRuntime @inject IUserDataService UserDataService @inject ISecureStorageHandler SecureStorageHandler @inject HttpClient http; @inject IEnumerable LogWriters

AppLaunch

Loading.... @code { private ILogger _logger; protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); //wait for 5 seconds //await Task.Delay(5000); string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails)); _logger.Info(userDetailsStr); if (!string.IsNullOrWhiteSpace(userDetailsStr)) { var userBasicDetail = JsonConvert.DeserializeObject(userDetailsStr); var handler = new JwtSecurityTokenHandler(); var jsontoken = handler.ReadToken(userBasicDetail?.AccessToken) as JwtSecurityToken; if(userBasicDetail!= null) Setting.UserBasicDetails = userBasicDetail; if (jsontoken?.ValidTo < DateTime.UtcNow) { _logger.Info("Token needs to be refreshed"); bool isTokenRefreshed = await UserDataService.RefreshToken(); if (isTokenRefreshed) { _logger.Info("Token refreshed"); NavManager.NavigateTo("/home"); } else { _logger.Info("Couldn't refresh token"); NavManager.NavigateTo("/login"); } } else { _logger.Info("Valid token found"); NavManager.NavigateTo("/home"); } } else { _logger.Info("No token stored yet"); NavManager.NavigateTo("/login"); } } }