Подтвердить что ты не робот

OpenID для приложений для Android, для которых требуется SignIn

Я новый разработчик на платформе Android для Google - мой HTC Desire прибыл на прошлой неделе.

Теперь мне нужен способ входа в мое существующее приложение (Java, в настоящее время работает на пристани). Серверное приложение разработано с использованием spring security 3.0.2

В моем случае я хочу поддержать следующее: Если пользователь настроил свой Android-телефон с помощью googlemail/google-Account (и большинство пользователей), я хочу использовать учетные данные этой учетной записи для автоматического входа в мое серверное приложение.

Есть ли какая-либо инфраструктура Android, поддерживающая этот прецедент? Или есть альтернативы?

Я читал: http code.google.com intl/de-DE/apis/accounts/docs/OpenID.html

Как мы входим с приложением в google AppEngine, описано здесь: http://blog.notdot.net/2010/05/Authenticating-against-App-Engine-from-an-Android-app

4b9b3361

Ответ 1

Я думаю, что вы хотите использовать AccountManager

Чтобы узнать, какой тип учетной записи Google, используйте что-то вроде:

AuthenticatorDescription[] types = mAccountManager.getAuthenticatorTypes(); //
for (AuthenticatorDescription type : types) {
  Log.d("account types", type.type);
}

Затем сделайте что-то вроде

AccountManager mAccountManager = AccountManager.get(context);
Account[] mAccounts = AccountManager.get(context).getAccountsByType("com.google");
// Choose which account to use if there are multiple google accounts registered, save to Account mAccount
AccountManagerFuture<options> response = mAccountManager.getAuthToken(mAccount, type, options, activity, mCallback, mHandler); // define callback and handler yourself for where to return

Когда пользователь достигает mCallback в вашем mHandler, процесс входа в систему завершен. Обычный диалог входа в систему Google будет использоваться, если пользователь еще не выполнил вход в свою учетную запись Google.

Попробуйте сами и сообщите мне, помогло ли вам!

Ответ 3

Я не уверен, что понимаю, где вы хотите, чтобы пользователь вошел в систему.

Обратите внимание, что вы не можете предположить, какой веб-браузер будет использоваться (браузер по умолчанию, опера, мобильный браузер и т.д.). Если вы предлагаете только веб-сайт, ответственность веб-браузера должна знать пользователь. Большинство пользователей, которых я уже зарегистрировал в своей учетной записи google. Android здесь не регрессирует.

Если вы хотите, чтобы ваше приложение Android подключалось к веб-службе, не запрашивая логин/пароль, вы не можете добиться этого с помощью openID. Я предлагаю oauth для этого случая использования.