Проверить данные для входа в Google с Android?

Я хотел бы связать аккаунт приложения с Google. Почти у каждого пользователя Android будет учетная запись GMail. Поэтому я зачитал счета:

private String[] getAccountNames(){
    mAccountManager = AccountManager.get(this);
    Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
    String[] names = new String[accounts.length];
    for (int i=0;i<names.length;i++){
        names[i] = accounts[i].name;
        Toast.makeText(this, accounts[i].name, Toast.LENGTH_LONG).show();
    }
    return names;
}

Пользователь может выбрать одну учетную запись и должен ввести пароль, чтобы проверить доступ к этой учетной записи и связать ее с приложением. Как я могу проверить правильность пароля? Какой сервер проверяет логин? Мне просто нужен ответ (true или false), если вход был успешным или нет.

2 ответа

Вы должны запросить разрешение пользователей и получить токен, используя это:

GoogleAuthUtil.getToken(activity, account, "oauth2:https://www.googleapis.com/auth/userinfo.profile");

После того, как пользователь утвердит ваш запрос, вышеприведенный вызов вернет токен, который вы можете использовать для выполнения вызовов API от имени пользователя.

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

Insted, вы должны попросить токен аутентификации от Android. С помощью этих токенов вы можете проверить с клиента (например, по этому адресу: https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=[your-id-token-here]), а также с вашего сервера, это учетная запись пользователя. Вы можете прочитать больше об этом в этом посте: http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html

Другие вопросы по тегам