1
chenhaozhe
2026-04-13 debfb742b27f7a5e668e6cd3f52db2ee8ddfe815
WebAPI/Utility/JWTHelper.cs
@@ -26,8 +26,8 @@
        {
            var claims = new[]
            {
            new Claim(ClaimTypes.NameIdentifier, userId),
            new Claim(ClaimTypes.Name, userName),
            new Claim(ClaimTypes.NameIdentifier, userId), // 编码
            new Claim(ClaimTypes.Name, userName), // 用户id
            new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
        };
@@ -81,9 +81,9 @@
        {
            var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
            var czybm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
            var zymm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
            var czymc = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
            // 通过上一个token的值刷新token
            return GenerateToken(czybm, zymm);
            return GenerateToken(czybm, czymc);
        }
        // 判断Token 是否即将过期
@@ -92,11 +92,18 @@
            var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
            var validTo = jwt.ValidTo;
            if(validTo.Subtract(DateTime.UtcNow).TotalMinutes < 5)
            if(validTo.Subtract(DateTime.UtcNow).TotalMinutes < 30)
            {
                return true;
            }
            return false;
        }
        public static String getUserName(string token)
        {
            var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
            var userName = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
            return userName;
        }
    }
}