- PVSM.RU - https://www.pvsm.ru -

Как сделать авторизацию для Java standalone приложения через Вконтакте

Всем привет,

Постараюсь подробнее объяснить, что хочу реализовать.
Есть десктопное java приложение (не Android), в которое хочется вставить авторизацию ВКонтакте. При этом требование, чтоб приложение теоретически не могло бы перехватить, введенный пользователем пароль.


После изучения задачи, понял, что есть 3 варианта реализации:
1) HttpGet: делаем прямой запрос к Вконтакте, посылаем логин и пароль, введенным пользователем в приложении.
Недостатки: сами разработчики ВКонтакте не рекомендуют такой способ, как ненадежный и который может быть закрыт в любой момент.
Примеров такого кода на Хабре навалом:
habrahabr.ru/post/144813/ [1]
habrahabr.ru/post/92693/ [2]

2) Открываем окно браузера через desktop.browse() со специально сформированным запросом вида
oauth.vk.com/authorize?client_id=APP_ID& [3] итд
Дальше пользователь независимо от приложения в браузере вводит пароль, нажимает кпопку согласие, перенаправляется на страницу с access_token.
Недостатки: через Desktop объект невозможно получить URL страницы, куда пользователь был перенаправлен, а значит и не получиться извлечь access_token.

3) Формируем запрос из пункта 2 не в стороннем браузере, а показываем пользователю внутри этого же приложения с помощью элемента, типа WebView.
Недостатки:
а) Тут пишут, что WebView сильно тормозит
stackoverflow.com/questions/8374365/integrating-javafx-2-0-webview-into-a-swing-java-se-6-application [4]
б) Думается, что существуют возможность перехвата введенных данных — пароля в webview пользователем

Автор: ideas4ru


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/16989

Ссылки в тексте:

[1] habrahabr.ru/post/144813/: http://habrahabr.ru/post/144813/

[2] habrahabr.ru/post/92693/: http://habrahabr.ru/post/92693/

[3] oauth.vk.com/authorize?client_id=APP_ID&: https://oauth.vk.com/authorize?client_id=APP_ID&

[4] stackoverflow.com/questions/8374365/integrating-javafx-2-0-webview-into-a-swing-java-se-6-application: http://stackoverflow.com/questions/8374365/integrating-javafx-2-0-webview-into-a-swing-java-se-6-application