Я использую шаблон 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, но сейчас я застрял здесь, перегорел и все еще задаюсь вопросом:
- Среда общего хостинга может влиять на срок действия токена?
- В web.config sessionState значение timeOut может влиять на истечение срока действия?
- Кроме "пароля". Каковы допустимые значения для параметра grant_type?
- Время TokenExpiry соответствует сценарию со скользящим окном. Это означает, что если срок действия установлен на 20 минут, а клиент использует API за 2 минуты до времени истечения, даже если токен истечет через 2 минуты?
- Как реализовать RefreshToken?
Любое руководство будет высоко ценится.