Мы хотим создать безопасный API, поэтому мы используем IdentityServer для проверки наших клиентов.
Вот снимок нашего кода, где мы настраиваем аутентификацию
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority =
Configuration.GetSection("Identity:Uri").Value;
options.JwtBearerEvents.OnMessageReceived= context =>
{
Console.WriteLine("Start log time");
return Task.CompletedTask;
};
options.JwtBearerEvents.OnTokenValidated = context =>
{
Console.WriteLine("End log time");
return Task.CompletedTask;
};
options.CacheDuration = TimeSpan.FromSeconds(0);
});
Авторизация работает отлично, без проблем.
Мой вопрос:
Я хочу узнать, сколько времени потребовалось серверу идентификации для проверки токена на предъявителя.
Как вы видите мой код, я добавил обратные вызовы для JwtBearerEvents.OnMessageReceived
и JwtBearerEvents.OnTokenValidated
.
Я думал о том, чтобы поставить секундомер и запустить функцию OnChallenge таймера и остановить ее в функции OnTokenValidated.
Но когда я пытаюсь запустить это, код никогда не набирает JwtBearerEvents.OnMessageReceived
.
- что я тут не так делаю?
- Есть ли другой метод, который мне нужно реализовать?
- Есть ли какой-нибудь другой / лучший способ получить время, потраченное личностью на проверку токена?