This commit is contained in:
SpecialX
2025-06-25 17:21:29 +08:00
parent f9ff57ff72
commit 262e7d6396
21 changed files with 1491 additions and 152 deletions

View File

@@ -24,16 +24,15 @@ namespace TechHelper.Client.HttpRepository
var authState = await _authenticationStateProvider.Value.GetAuthenticationStateAsync();
var user = authState.User;
// 如果 user 或 claims 为空,表示用户未认证,直接返回空字符串
if (user?.Identity == null || !user.Identity.IsAuthenticated)
{
return string.Empty;
}
var expClaim = user.FindFirst(c => c.Type.Equals("exp"))?.Value; // 使用 ?. 防止空引用
var expClaim = user.FindFirst(c => c.Type.Equals("exp"))?.Value;
if (string.IsNullOrEmpty(expClaim))
{
return string.Empty; // 没有过期时间声明,也直接返回
return string.Empty;
}
var expTime = DateTimeOffset.FromUnixTimeSeconds(
@@ -41,9 +40,11 @@ namespace TechHelper.Client.HttpRepository
var diff = expTime - DateTime.UtcNow;
// 只有当令牌即将过期时才尝试刷新
var n = DateTime.UtcNow;
if (diff.TotalMinutes <= 2)
return await _authenticationClientService.Value.RefreshTokenAsync(); // 访问 .Value 来调用方法
return await _authenticationClientService.Value.RefreshTokenAsync();
return string.Empty;
}