Веб-API: как отлаживать AccessToken? Непредвиденная ошибка аутентификации - PullRequest
0 голосов
/ 27 апреля 2019

Я использую шаблон WebAPI по умолчанию (.Net Framework 4.6.1) для разработки API для моего приложения для Android и iOS, все работает нормально, но случайное приложение возвращается с Ошибка аутентификации .

Атрибут

[Authorize] используется на уровне контроллера, для проверки цели токена установленного срока действия даже до 20 лет с использованием AccessTokenExpireTimeSpan = TimeSpan.FromDays(7300), но он все еще истекает случайным образом.

Я получаю access_token, нажимая конечную точку http://localhost:52547/token с параметрами UserName, Password и grant_type.

Для отладки сценария, пытающегося отменить защиту токена в DelegateHandlers с использованием этого подхода, но объект Ticket получает значение NULL.

AccountController имеет конструкторы по умолчанию и параметризованные, принимающие параметры UserManager и AccessTokenFormat

Метод действия AddExternalLogin пытается снять защиту токена с помощью свойства AccessTokenFormat

Жизненный цикл веб-API показывает Объект контроллера инициализируется с помощью ControllerDispatcher перед нажатием Action, но я не понимаю, как вызвать public AccountController(ApplicationUserManager userManager, ISecureDataFormat<AuthenticationTicket> accessTokenFormat) и что передать в параметре accessTokenFormat? userManager устанавливается после входа в систему (попадание / токен конечной точки).

Я впервые играю с WebAPI, но сейчас я застрял здесь, перегорел и все еще задаюсь вопросом:

  1. Среда общего хостинга может влиять на срок действия токена?
  2. В web.config sessionState значение timeOut может влиять на истечение срока действия?
  3. Кроме "пароля". Каковы допустимые значения для параметра grant_type?
  4. Время TokenExpiry соответствует сценарию со скользящим окном. Это означает, что если срок действия установлен на 20 минут, а клиент использует API за 2 минуты до времени истечения, даже если токен истечет через 2 минуты?
  5. Как реализовать RefreshToken?

Любое руководство будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...