Реализация http-попыток с потоком токенов refre sh - PullRequest
1 голос
/ 26 апреля 2020

У меня есть приложение командной строки java, которое аутентифицируется с помощью внешней службы, используя поток устройств OAuth 2.0. Он выполняет различные вызовы REST для этой службы, но иногда срок действия маркера доступа истекает. Когда он истекает, я получаю код ответа 401. Я обработал этот код ответа, используя поток токенов refre sh, чтобы получить новый токен доступа, затем я рекурсивно вызываю ту же функцию еще раз, чтобы выполнить действие с новым токеном.

Это работает для меня, и я установил ограничения на повторные попытки, но это неправильно. Я не уверен, как я могу реализовать это как обычную функцию. Я копировал и вставлял одни и те же логи c по всему коду. Я пытался найти альтернативные подходы, но пока ничего не нашел. Есть предложения?

1 Ответ

0 голосов
/ 26 апреля 2020

Согласно OAuth2 RF C https://tools.ietf.org/html/rfc6749 кажется, что вы используете поток учетных данных клиента, который на самом деле не должен иметь токен refre sh, так как приложение может легко запросить любое количество жетоны.

Поэтому я бы порекомендовал просто получить новый токен доступа по истечении срока действия существующего.

Только после того, как вы подключили пользователя (код авторизации, скрытый или парольный поток), становится разумным управлять также токенами refre sh, чтобы не беспокоить пользователя.

...