检索生成访问令牌的时间?

时间:2017-01-30 00:31:16

标签: asp.net-core openid-connect openiddict

我正在尝试获取包含令牌创建日期的声明...我尝试了以下内容:

var createdDate = contextAccessor.HttpContext.User.FindFirstValue("IssuedUtc");

var createdDate = contextAccessor.HttpContext.User.FindFirstValue("iss");

var createdDate = contextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.AuthenticationInstant);

1 个答案:

答案 0 :(得分:1)

使用JWT作为访问令牌格式时,您可以使用iat声明。

使用默认的opaque格式时,创建日期不会存储为声明,而是存储为身份验证属性。您可以使用AuthenticationManager API检索它:

var result = await contextAccessor.HttpContext.Authentication.GetAuthenticateInfoAsync(OAuthValidationDefaults.AuthenticationScheme);
var date = result.Properties.IssuedUtc;

注意:第二个选项也适用于JWT,只需将OAuthValidationDefaults.AuthenticationScheme常量替换为JwtBearerDefaults.AuthenticationScheme