Google OAuth 2.0 на WinForm

Мне нужны указания, потому что я совсем заблудился. Я работаю над очень маленьким приложением в WinForms, и оно использует API Google. чтобы получить доступ к данным пользователя, мне нужно получить его имя пользователя и пароль, до этой части все работает, но у меня нет возможности сохранять пользователя.

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

Я задал вопрос о том, куда я должен поместить эту информацию, и получил ответ, что не рекомендуется сохранять имя пользователя и пароль, и вместо этого я должен использовать Google OAuth 2.0.

Но моя проблема в том, что мне нужно использовать веб-браузер для Google OAuth 2.0, и теперь я не уверен, как реализовать это в моем приложении WinForm.

Мои вопросы:

  1. Можно ли получить данные из веб-браузера в мое приложение?
  2. Должен ли я искать другой способ получения пользовательских данных? (любое предложение будет большим).

person samy    schedule 04.01.2013    source источник


Ответы (3)


Две наиболее важные части информации, которые вы должны знать, это то, что вы должны использовать клиентскую библиотеку, чтобы сделать работу за вас, и вы должны использовать тип потока/клиента «Установленное приложение».

Воспользуйтесь приведенным здесь руководством, в котором показано, как использовать установленное приложение: https://code.google.com/p/google-api-dotnet-client/wiki/GettingStarted

Вам нужно использовать веб-браузер, чтобы получить учетные данные от пользователя, но как только вы это сделаете, вы сможете повторно использовать эти учетные данные (токен обновления) без повторного запроса. Библиотека упрощает перемещение этих учетных данных из браузера в ваше приложение.

person David Primmer    schedule 05.01.2013

Выполнение OAuth2 в небраузерном приложении известно как «двусторонний OAuth2».

Трехсторонний протокол OAuth2 на стороне сервера предназначен для аутентификации в браузере. Он состоит из следующих шагов:

  1. приложение переходит к вашему веб-приложению
  2. ваше веб-приложение перенаправляется на конечную точку OAuth2 в Google с правильными параметрами получения
  3. Google аутентифицирует вашего пользователя и перенаправляет браузер обратно в ваше веб-приложение с токеном пользователя.
  4. ваше веб-приложение использует токен для подключения к службам Google.

Двухэтапная аутентификация OAuth2 на стороне клиента заключается в размещении элемента управления WebBrowser в вашем приложении и выполнении шагов 2–3 трехэтапной аутентификации:

  1. элемент управления веб-браузером переходит к конечной точке OAuth2 в Google, делая вид, что ваше веб-приложение будет аутентифицировано
  2. элемент управления веб-браузером позволяет пользователю аутентифицироваться и перенаправляет обратно в ваше веб-приложение
  3. но на самом деле у вас даже нет веб-приложения - при перенаправлении обратно в ваше приложение вы перехватываете событие redirect элемента управления веб-браузером и извлекаете токен аутентификации

Имея токен пользователя, приложение winforms подключается к службам Google от имени пользователя.

person Wiktor Zychla    schedule 04.01.2013
comment
Подход с двумя и тремя ногами не очень актуален, когда вы имеете дело с OAuth2, и эти термины традиционно используются в OAuth1. В OAuth2 есть потоки, в которых участвует пользователь, и потоки, в которых он не участвует. С точки зрения Google, все потоки, кроме учетных записей служб, предполагают получение разрешения пользователя. Этот вопрос касался учетных данных пользователя, поэтому можно выбрать веб-приложение, установленное приложение или поток на стороне клиента. Сонер хочет установить приложение. - person David Primmer; 05.01.2013

Вкратце: вы должны сосредоточить свое внимание на OAuth 2.0 в клиентской библиотеке.

Таким образом, в документации есть очень хорошие описания и примеры, с которыми нужно работать.

Хотя некоторые службы вообще не требуют аутентификации или используют только ваш ключ разработчика, большинству служб требуется доступ к некоторым данным пользователей. Для доступа к пользовательским данным используется модель аутентификации OAuth2.0.

Ссылка на источник — google-api-dotnet-client OAuth2.0

person Yusubov    schedule 04.01.2013