OpenID для приложений Android, требующих входа - PullRequest
21 голосов
/ 25 июля 2010

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

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

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

Существует ли какая-либо платформа 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

Ответы [ 3 ]

10 голосов
/ 07 октября 2010

Я думаю, что вы хотите использовать 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 голосов
/ 08 марта 2012

Вот открытый API Java: вот ссылка: http://code.google.com/p/openid4java/

2 голосов
/ 29 сентября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...