【问题标题】:JWT token is expiring before the given expire timeJWT 令牌在给定的过期时间之前过期
【发布时间】:2019-04-19 14:58:38
【问题描述】:

我正在使用

var payload = new JwtPayload(issuer, audience, claim identities, DateTime.Now, DateTime.Now.AddMinutes(60), DateTime.Now);

生成具有 60 分钟到期时间但在到期时间之前到期的身份验证令牌

【问题讨论】:

  • 请尝试jwt.io 解码生成的JWT。显示的时间是否正确?更多见解,例如示例令牌或其有效时间,会很有帮助。

标签: c# jwt


【解决方案1】:

我使用以下方法在我的 asp.net 核心 web api 服务中构建令牌:

private string BuildToken()
{
    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtOptions.Key));
    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(
      _jwtOptions.Issuer, // some issuer, e.x. you can specify your localhost
      _jwtOptions.Issuer,
      expires: DateTime.Now.AddMinutes(_jwtOptions.Expires),  // int value
      signingCredentials: creds);

    return new JwtSecurityTokenHandler().WriteToken(token);
}

也许这对你有所帮助。

【讨论】:

  • 令牌正在生成,但我的问题是它在给定的 exp 时间之前到期。你遇到过同样的问题吗?
  • 不,我没有。令牌恰好在给定时间后过期。
  • 谢谢伙计。让我检查并尝试使用您的代码可能有效。
猜你喜欢
  • 2020-03-01
  • 2019-04-18
  • 2023-04-04
  • 2017-03-04
  • 2019-07-04
  • 2016-11-13
  • 1970-01-01
  • 2016-08-08
  • 2021-11-04
相关资源
最近更新 更多