gpt4 book ai didi

c# - 如何从 jwt token 中获取 "exp"并与当前时间进行比较以检查 token 是否已过期

转载 作者:行者123 更新时间:2023-12-05 00:51:54 25 4
gpt4 key购买 nike

我正在使用 System.IdentityModel.Tokens.Jwt 包和下面的代码解码 jwt token ,但它不会给出 exp 值?

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

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

enter image description here

更新:

我正在使用 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;
}

关于c# - 如何从 jwt token 中获取 "exp"并与当前时间进行比较以检查 token 是否已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70879343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com