TourIAm/TIAMSharedUI/Pages/Components/AppLaunch.razor

57 lines
1.6 KiB
Plaintext

@page "/";
@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
@inject NavigationManager NavManager
@inject LogToBrowserConsole logToBrowserConsole
@inject IUserDataService UserDataService
@inject ISecureStorageHandler SecureStorageHandler
<h3>AppLaunch</h3>
Loading....
@code {
protected async override Task OnInitializedAsync()
{
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
logToBrowserConsole.LogToBC(userDetailsStr);
if (!string.IsNullOrWhiteSpace(userDetailsStr))
{
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
var handler = new JwtSecurityTokenHandler();
var jsontoken = handler.ReadToken(userBasicDetail.AccessToken) as JwtSecurityToken;
Setting.UserBasicDetails = userBasicDetail;
if (jsontoken.ValidTo < DateTime.UtcNow)
{
bool isTokenRefreshed = await UserDataService.RefreshToken();
if (isTokenRefreshed)
{
NavManager.NavigateTo("/home");
}
else
{
NavManager.NavigateTo("/login");
}
}
else
{
NavManager.NavigateTo("/home");
}
}
else
{
NavManager.NavigateTo("/login");
}
}
}