Предоставленные учетные данные аутентификации неверны или срок их действия истек.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Предоставленные учетные данные аутентификации неверны или срок их действия истек.

Сообщение Anonymous »

В моем приложении для Android я вхожу в систему через Firebase AuthUI, используя вход Google. Эта часть работает. Теперь я попытался войти в систему с помощью IdToken, но всегда получаю это сообщение об ошибке:


com.google.android.gms .tasks.RuntimeExecutionException:
com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: предоставленные учетные данные аутентификации неверны или срок их действия истек. [Неверный id_token в ответе поставщика идентификационной информации: XXXXXXX... ]


Это работает, и я успешно авторизуюсь в моем проекте Firebase:

@OnClick(R.id.sign_in)
public void signIn() {
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setTheme(getSelectedTheme())
.setLogo(getSelectedLogo())
.setAvailableProviders(getSelectedProviders())
.setTosAndPrivacyPolicyUrls(getSelectedTosUrl(),getSelectedPrivacyPolicyUrl())
.setIsSmartLockEnabled(true,
true)
.build(),
RC_SIGN_IN);
}


Но попытка использовать SignInWithCredential с использованием учетных данных, полученных из IdToken, приводит к ошибке, указанной выше:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
handleSignInResponse(resultCode, data);
return;
}

}

@MainThread
private void handleSignInResponse(int resultCode, Intent data) {
IdpResponse response = IdpResponse.fromResultIntent(data);

if (resultCode == RESULT_OK) {
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser firebaseUser = auth.getCurrentUser();

if(firebaseUser != null){

auth.getCurrentUser().getIdToken(true).addOnCompleteListener(task -> {

String idToken = task.getResult().getToken();
AuthCredential cred = GoogleAuthProvider.getCredential(idToken ,null);

auth.signInWithCredential(cred).addOnCompleteListener(task1 ->
Log.v(TAG,"results: " + task1.getResult()));

});
}
}
}


Я следую этому руководству и моя цель — войти в несколько проектов Firebase.

Пытаюсь вход во вторичный проект Firebase, используя учетные данные из IdToken выше, возвращает ту же ошибку.

FirebaseApp app = FirebaseApp.getInstance("secondary");
FirebaseAuth.getInstance(app).signInWithCredential(credential);


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

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

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

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

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

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

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