@page "/adminstart";
@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models
@using TIAMWebApp.Shared.Application.Utility
@using Newtonsoft.Json
@using System.IdentityModel.Tokens.Jwt
@using TIAMWebApp.Shared.Application.Models.ClientSide
@using AyCode.Interfaces.StorageHandlers;
@inject NavigationManager NavManager
@inject IJSRuntime JSRuntime
@inject LogToBrowserConsole logToBrowserConsole
@inject IUserDataService UserDataService
@inject ISecureStorageHandler SecureStorageHandler
@inject HttpClient http;
AppLaunch
Loading....
@code {
protected async override Task OnInitializedAsync()
{
logToBrowserConsole = new LogToBrowserConsole(JSRuntime);
//wait for 5 seconds
await Task.Delay(5000);
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
logToBrowserConsole.LogToBC(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)
{
logToBrowserConsole.LogToBC("Token needs to be refreshed");
bool isTokenRefreshed = await UserDataService.RefreshToken();
if (isTokenRefreshed)
{
logToBrowserConsole.LogToBC("Token refreshed");
NavManager.NavigateTo("/home");
}
else
{
logToBrowserConsole.LogToBC("Couldn't refresh token");
NavManager.NavigateTo("/login");
}
}
else
{
logToBrowserConsole.LogToBC("Valid token found");
NavManager.NavigateTo("/home");
}
}
else
{
logToBrowserConsole.LogToBC("No token stored yet");
NavManager.NavigateTo("/login");
}
}
}