Вход в Android Google с помощью диспетчера учетных данных, невозможно получить пользовательские данные при возвращении пAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Вход в Android Google с помощью диспетчера учетных данных, невозможно получить пользовательские данные при возвращении п

Сообщение Anonymous »

Во-первых, извините, если это самый тупой вопрос, который вы когда-либо видели. Но у меня возникли проблемы со входом в Google в Android. У меня есть приложение с входом в Google. Оно уже находится в рабочей версии.
около 2–4 дней назад наше приложение получило несколько отчетов от нашего пользователя. который использует вход с учетной записью Google, после того как я его проверил.
Проблема заключалась в следующем:
  • когда пользователь сначала входит в систему в нашем приложении, нажмите «Войти с помощью» Google, затем отобразите диалоговое окно от Google, в котором пользователь должен выбрать учетную запись для входа в систему. После того, как пользователь выберет ее, отобразится запрос на согласие пользователя. пользователь должен с этим согласиться. -> код работает нормально, может получать электронную почту пользователя.
  • но когда пользователь выходит из системы, а затем входит в систему с той же учетной записью, запрос на согласие пользователя не отображается, тогда наш код не может получить электронную почту, но он будет вернуть некоторый идентификатор строки, например "11231231231231231"
код: следующий из https://developer.android.com/identity/ ... redential- менеджер-siwg
GetSignInWithGoogleOption googleIdOption = new GetSignInWithGoogleOption.Builder(getString(R.string.your_web_client_id)).setNonce("nonce").build();
GetCredentialRequest request = new GetCredentialRequest.Builder().addCredentialOption(googleIdOption).build();

credentialManager.getCredentialAsync(this, request, new CancellationSignal(), Executors.newSingleThreadExecutor(), new CredentialManagerCallback() {
@Override
public void onResult(GetCredentialResponse result) {
handleSignIn(result);
}

@Override
public void onError(GetCredentialException e) {
Log.e(TAG, "Login Err" + e.getMessage());
}
});

public void handleSignIn(GetCredentialResponse result) {
Credential credential = result.getCredential();
if (credential instanceof CustomCredential) {
if (GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL.equals(credential.getType())) {
GoogleIdTokenCredential googleIdTokenCredential = null;
try {
googleIdTokenCredential = GoogleIdTokenCredential.createFrom(((CustomCredential) credential).getData());
} catch (Exception e) {
Log.e(TAG, "Received an invalid google id token response" + e.getMessage());
}

String personName = googleIdTokenCredential.getDisplayName();
String email = googleIdTokenCredential.getId();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... a-on-retur
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»