Показать сообщение отдельно
Старый 11.10.2012, 18:21     # 1
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

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

Всем привет,

Есть десктопное java приложение (не Android), в которое хочется вставить авторизацию ВКонтакте.

При этом требование, чтоб приложение теоретически не могло бы перехватить, введенный пользователем пароль.


После изучения задачи, понял, что есть 3 варианта реализации:
1) HttpGet: делаем прямой запрос к Вконтакте, посылаем логин и пароль, введенным пользователем в приложении.
Недостатки: сами разработчики ВКонтакте не рекомендуют такой способ, как ненадежный и который может быть закрыт в любой момент.
Примеров такого кода на везде навалом.

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

3) Формируем запрос из пункта 2 не в стороннем браузере, а показываем пользователю внутри этого же приложения с помощью элемента, типа WebView.
Недостатки:
а) Надо, кажется, ставить JavaFX каждому клиенту отдельно
б) Думается, что существуют возможность перехвата введенных данных — пароля в webview пользователем
Kvarx вне форума