IdentityServer получает время, необходимое для проверки клиента - PullRequest
0 голосов
/ 13 марта 2019

Мы хотим создать безопасный 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.

  • что я тут не так делаю?
  • Есть ли другой метод, который мне нужно реализовать?
  • Есть ли какой-нибудь другой / лучший способ получить время, потраченное личностью на проверку токена?
...