TourIAm/TIAMSharedUI/Pages/LaunchAdmin.razor

72 lines
2.2 KiB
Plaintext

@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<IAcLogWriterClientBase> LogWriters
<h3>AppLaunch</h3>
Loading....
@code {
private ILogger _logger;
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient<LaunchAdmin>(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<UserBasicDetails>(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");
}
}
}