Как сделать авторизацию для 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 пользователем
|