如何从 jwt 令牌获取“exp”并与当前时间进行比较以检查令牌是否过期

2023-12-23

我在用System.IdentityModel.Tokens.Jwt包和下面的代码解码jwt令牌,但它不会给 exp value?

 var handler = new JwtSecurityTokenHandler();
 var decodedValue = handler.ReadJwtToken("token");

如何获得exp并与当前的DateTime进行比较来计算token是否过期?

Update:

我在用Azure.Core.AccessToken我有以下财产,

public DateTimeOffset ExpiresOn
    {
        get;
    }

我用这个:

using System.IdentityModel.Tokens.Jwt;

public static long GetTokenExpirationTime(string token)
    {
        var handler = new JwtSecurityTokenHandler();
        var jwtSecurityToken = handler.ReadJwtToken(token);
        var tokenExp = jwtSecurityToken.Claims.First(claim => claim.Type.Equals("exp")).Value;
        var ticks= long.Parse(tokenExp);
        return ticks;
    }

public static bool CheckTokenIsValid(string token)
    {
        var tokenTicks = GetTokenExpirationTime(token);
        var tokenDate = DateTimeOffset.FromUnixTimeSeconds(tokenTicks).UtcDateTime;

        var now = DateTime.Now.ToUniversalTime();

        var valid = tokenDate >= now;

        return valid;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 jwt 令牌获取“exp”并与当前时间进行比较以检查令牌是否过期 的相关文章

随机推荐