Harden admin telemetry and deployment safeguards
TaxBaik CI/CD / build-and-deploy (push) Successful in 4m30s

This commit is contained in:
2026-07-02 16:10:15 +09:00
parent b1601b0305
commit d780fecf8c
53 changed files with 1590 additions and 656 deletions
@@ -38,7 +38,7 @@ public class CustomAuthenticationStateProvider : AuthenticationStateProvider
{
var refreshToken = await _localStorage.GetItemAsStringAsync("refreshToken");
var ticksStr = await _localStorage.GetItemAsStringAsync("tokenExpiry");
if (long.TryParse(ticksStr, out var ticks))
if (TryNormalizeExpiryTicks(ticksStr, out var ticks))
{
_tokenStore.AccessToken = storedToken;
_tokenStore.RefreshToken = refreshToken;
@@ -130,6 +130,30 @@ public class CustomAuthenticationStateProvider : AuthenticationStateProvider
NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
}
private static bool TryNormalizeExpiryTicks(string? rawValue, out long ticks)
{
ticks = 0;
if (!long.TryParse(rawValue, out var parsed))
{
return false;
}
// Support both legacy Unix-millisecond storage and .NET ticks.
if (parsed > 10_000_000_000_000L && parsed < 100_000_000_000_000_000L)
{
ticks = parsed;
return true;
}
if (parsed > 1_000_000_000_000L && parsed < 100_000_000_000_000L)
{
ticks = DateTimeOffset.FromUnixTimeMilliseconds(parsed).UtcDateTime.Ticks;
return true;
}
return false;
}
private bool ShouldRefreshToken()
{
// 토큰이 5분 이내로 만료되면 갱신 (300초 = 5분)