我在用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(使用前将#替换为@)