Как связать настольное приложение с веб-сайтом - PullRequest
1 голос
/ 30 марта 2012

Мне нужно связать настольное приложение с учетной записью конкретного пользователя на веб-сайте.До сих пор рабочий процесс был следующим:

Текущий процесс

  • Настольное приложение запрашивает электронную почту пользователя, пароль и некоторую дополнительную информацию (имя компьютера).
  • Itвызывает веб-сайт, используя REST с учетными данными пользователя, получает вновь созданный токен и сохраняет его.Этот токен используется для аутентификации настольного приложения.

Новый процесс

Теперь я хочу позволить пользователям зарегистрироваться и войти на наш веб-сайт с помощью Facebook и, возможно, других третьих лиц.веб-сайтыОчевидно, что процесс входа в Facebook не может происходить внутри моего настольного приложения, поэтому я ищу способ выполнить весь процесс ассоциации в браузере и перенести сгенерированный токен из браузера в настольное приложение в качестве последнего шага.

Я предпочитаю использовать браузер пользователя по умолчанию, а не элемент управления WebBrowser, поскольку элемент управления WebBrowser использует IE, и если это не браузер пользователя по умолчанию, все файлы cookie (и логин Facebook и т. Д.) Будут отсутствовать.

Проблема

Как лучше всего автоматически передать 24-символьный буквенно-цифровой токен со страницы, открытой в веб-браузере, в настольное приложение.Ручная вырезка и вставка не сработают ... Если есть какой-то другой способ разумного достижения того, что я пытаюсь сделать, я бы тоже хотел услышать об этом.

Платформа

Настольная платформаWindows (в настоящее время), но мы также ищем создание клиента для MacOSX.Веб-платформа Ruby on Rails 3.2 + jQuery.

Ответы [ 2 ]

1 голос
/ 30 марта 2012

По очевидным причинам безопасности браузеры не имеют такой функциональности.

Поскольку браузеры не могут напрямую сохранять файлы на диск пользователя, вашему веб-приложению придется генерировать файл с любым токеном OAuth (Facebook, Twitter, что угодно) и данные, которые вы хотите в файл с известным расширением, например «12345.haimg», и заставьте ваше настольное приложение связать этот тип файла в ОС, поэтому, когда пользователь открывает файл, он передает эти данные на рабочий столприложение.Но хотя веб-приложение может инициировать автоматическую загрузку, пользователю потребуется вручную открыть файл, чтобы «зарегистрироваться» в приложении для настольного компьютера, и, поскольку вы можете связать только одно расширение файла с одним приложением, вам необходимо настроитьнесколько расширений файлов и файловых ассоциаций.Звучит больше проблем, чем стоит.

Вы всегда можете просто предоставить пользователю какой-нибудь хеш-токен в веб-приложении, который можно декодировать в приложении для настольного компьютера.Пользователю все равно придется вручную вырезать и вставлять, но если это происходит один раз, это не должно иметь большого влияния и будет казаться им более безопасным, чем загрузка большого количества файлов и т. Д. Затраты будут намного меньшена ваших сотрудников ИТ, которые не должны были бы устанавливать все ассоциации файлов, упомянутые выше.

0 голосов
/ 21 апреля 2015

ваше настольное приложение может встраивать Jetty и использовать CORS (Cross Origin Resource Sharing), чтобы разрешить браузеру доступ к localhost. Другое решение заключается в использовании «пользовательского протокола URL». Вы также можете использовать Node.js

...