OAuth2 авторизация для Standalone

232
07 марта 2018, 07:35

Все статьи про OAuth2, которые хоть как-то упоминают Standalone говорят лишь "перехватите как-нибудь код авторизации и отправьте POST запрос для получения токена".
А вот как именно получить этот код, если я должен передать url в браузер, который с моим приложением никак не связан, нигде не объясняется.
Как перехватить редирект содержащий в себе токен?

Конкретно в моём случае дилемма состоит в том, что я пишу реализацию API сайта (если ещё конкретнее, то реализацию на Java).

Моя цель реализовать удобный метод авторизации и дальнейшей работы с API.
Желательно без "хаков" в виде эмуляции браузера и парсинга. А вполне легитимным способом. Возможно ли в данной ситуации автоматическое получение кода авторизации из браузера при подтверждении авторизации пользователем или придётся просить пользователя самостоятельно скопировать его из браузера и вставить в приложение?

Самое простое, что я вижу, это заменить метод авторизации с аргументами логин/пароль на метод авторизации через код авторизации и клиент id/secret.
А что мне делать, если я, скажем, сам же захочу воспользоваться этой библиотекой и написать desktop-приложение?

Answer 1

Как я понял, ваше standalone-приложение и есть desktop-приложение. В общем случае как-нибудь не получится, но есть метод, чтобы сделать это правильно. Весь секрет в том, что OAuth 2.0 не запрещает делать переадресацию на другие протоколы помимо http|https. Но в любом случае вам понадобится браузер (или его встроенная версия, доступная в java 8).

Соответственно, вы отправляете пользователя на сервер авторизации, но при этом в адресе возврата указываете свой протокол, что-то вроде myProtocol://что_то_тут_ещё. Такой подход предлагает к пример Яндекс.

Однако это предполагает знание того, как зарегистрировать свой протокол в системе и т.д. Но от этого уже никуда не деться, и это совсем другой вопрос.

READ ALSO
Аналог Pygame, но для Java

Аналог Pygame, но для Java

Нужен простой игровой движок для JavaПринцип роботы должен быть как у Pygame - просто методы отрисовки и обработки столкновений, возможно работа...

272
Потоки в JavaFX

Потоки в JavaFX

Есть фрагмент кода:

422
Selenium Webdriver + jQuery локаторы

Selenium Webdriver + jQuery локаторы

Доброго времени сутокМо;но ли как-то в Selenium Webdriver реализовать метод поиска по jquery локаторам? Может быть есть подключаемая библиотека, или...

256
Почему Java на Ubuntu не может загрузить Main class?

Почему Java на Ubuntu не может загрузить Main class?

Делаю JavaFX GUIНа windows работает, но на Linix'е выдаёт:

231