chenhaozhe
4 天以前 da84e4e72c9d9cc7e2bd40dc4bb7b3222ca3519a
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())
        };
@@ -37,7 +37,7 @@
                issuer: "zjzyms",
                audience: HCampanyName,
                claims: claims,
                expires: DateTime.UtcNow.AddHours(2), // 两小时过期时间
                expires: DateTime.UtcNow.AddMinutes(120), // 两小时过期时间
                signingCredentials: credentials
            );
@@ -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;
        }
    }
}