我正在尝试获取包含令牌创建日期的声明...我尝试了以下内容:
var createdDate = contextAccessor.HttpContext.User.FindFirstValue("IssuedUtc");
var createdDate = contextAccessor.HttpContext.User.FindFirstValue("iss");
var createdDate = contextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.AuthenticationInstant);
答案 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
。