在Startup.cs(NET CORE)中,我使用JWT创建并验证令牌。 现在,我需要刷新令牌并使用黑名单令牌进行处理。 登录时,我创建了AccessToken和刷新令牌。
我在这里建立了另一个安全解决方案。 https://scotch.io/@sagarsubedi/3-level-jwt-secret-is-this-a-good-idea
查询数据库中的用户
验证签名
获取app_secret
从用户那里获取user_secret
使用token_id声明从用户的token_info获取token_secret。
还用存储的令牌验证令牌的exp要求
使用标头,有效负载和机密信息重新计算签名。
确保令牌随附的签名和重新计算的签名匹配。
我将在授权令牌中显示当前代码。
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(configureOptions =>
{ configureOptions.ClaimsIssuer = jwtAppSettingOptions [nameof(JwtIssuerOptions.Issuer)];
configureOptions.TokenValidationParameters = tokenValidationParameters;
configureOptions.SaveToken = true;
configureOptions.Events = new JwtBearerEvents
{
OnAuthenticationFailed = context =>
{
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
{
context.Response.Headers.Add("Token-Expired", "true");
}
return Task.CompletedTask;
}
};
});
我不知道如何在“开始”>“ ConfigureServices”中处理有效的关注解决方案。
我认为我需要处理验证令牌
因为我必须在有效令牌之前检查数据库中的黑名单。
(或者像其他解决方案一样做例子)
当前,它仅是有效令牌,无法检查数据库中的黑名单。还是做任何事情。
请帮助我。