Все статьи про OAuth2, которые хоть как-то упоминают Standalone говорят лишь "перехватите как-нибудь код авторизации и отправьте POST запрос для получения токена".
А вот как именно получить этот код, если я должен передать url в браузер, который с моим приложением никак не связан, нигде не объясняется.
Как перехватить редирект содержащий в себе токен?
Конкретно в моём случае дилемма состоит в том, что я пишу реализацию API сайта (если ещё конкретнее, то реализацию на Java).
Моя цель реализовать удобный метод авторизации и дальнейшей работы с API.
Желательно без "хаков" в виде эмуляции браузера и парсинга. А вполне легитимным способом. Возможно ли в данной ситуации автоматическое получение кода авторизации из браузера при подтверждении авторизации пользователем или придётся просить пользователя самостоятельно скопировать его из браузера и вставить в приложение?
Самое простое, что я вижу, это заменить метод авторизации с аргументами логин/пароль на метод авторизации через код авторизации и клиент id/secret.
А что мне делать, если я, скажем, сам же захочу воспользоваться этой библиотекой и написать desktop-приложение?
Как я понял, ваше standalone-приложение и есть desktop-приложение. В общем случае как-нибудь не получится, но есть метод, чтобы сделать это правильно. Весь секрет в том, что OAuth 2.0 не запрещает делать переадресацию на другие протоколы помимо http|https. Но в любом случае вам понадобится браузер (или его встроенная версия, доступная в java 8).
Соответственно, вы отправляете пользователя на сервер авторизации, но при этом в адресе возврата указываете свой протокол, что-то вроде myProtocol://что_то_тут_ещё. Такой подход предлагает к пример Яндекс.
Однако это предполагает знание того, как зарегистрировать свой протокол в системе и т.д. Но от этого уже никуда не деться, и это совсем другой вопрос.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости