1

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

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

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

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

1 回答 1

1

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

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

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

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

于 2017-01-30T03:10:28.517 回答