我正试图找出使jwt令牌无效的最佳方法。阅读其他问题时,我不明白什么是最好的方法。
我的后端配置如下:我有3个web API,其中一个配置了asp-net-identityjwt。为了使用其他2个web API,客户端必须首先向登录API请求jwt令牌。
在进行测试时,我意识到,如果用户请求一个令牌,并且在重置密码后立即,该令牌不会无效,因为其他api上的验证只考虑颁发者和受众Secret
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audienceId },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, audienceSecret)
}
});
有什么方法可以使令牌无效吗?
感谢您的帮助
不,不是。代币就是这样的。这就是为什么在大多数情况下,人们使用两个令牌——短期访问令牌(这是理所当然的(和长期刷新令牌。每次为给定的刷新令牌创建新的访问令牌时,您都会再次检查。
您可以做的是让身份验证端点检查令牌是否无效。这将产生大量的请求。在大多数情况下不需要它。
在您的示例中,即为什么要使令牌无效?用户更改了密码,但没有注销。