В Startup.cs (NET CORE) я использую JWT для создания и проверки токена.
Теперь мне нужно обновить токен и обработать его с помощью черного списка токенов.
При входе в систему я создал AccessToken & Refresh Token.
Я нашел здесь другие решения безопасности.
https://scotch.io/@sagarsubedi/3-level-jwt-secret-is-this-a-good-idea
Запрос базы данных для пользователя
Проверить подпись
получить app_secret
получить user_secret от пользователя
используя утверждение token_id, получите token_secret из token_info пользователя.
также подтвердите требование 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.
Я думаю, что мне нужно обработать токен Validate
потому что я должен проверить черный список в БД перед действительным токеном.
(Или пример как другое решение)
В настоящее время это только действительный токен, но он не может проверить черный список в БД. Или сделай что-нибудь.
Пожалуйста, помогите мне.