【发布时间】:2019-04-16 20:13:31
【问题描述】:
下面是我使用的 JWT 认证:
.AddJwtBearer(options =>
{
// options.SaveToken = false;
// options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(AuthConfig.GetSecretKey(Configuration)),
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = true,
ClockSkew = TimeSpan.Zero,
};
options.Events = new JwtBearerEvents()
{
OnChallenge = c =>
{
c.HandleResponse();
// TODO: How to know if the token was expired?
return AspNetUtils.WriteJsonAsync(c.Response, new Result<string>
{
Message = "Unauthenticated.",
IsError = true
}, 401);
},
};
});
身份验证工作正常。对于新的需求,我需要知道身份验证是否因为 JWT 令牌过期而失败。
请注意,由于多种原因,身份验证失败。令牌可能丢失、被篡改或过期。
有什么想法吗?谢谢!
【问题讨论】:
标签: asp.net-core jwt asp.net-core-2.1 jwt-auth