AngularFirebase google signin idToken иногда возвращает профиль пользователя - PullRequest
0 голосов
/ 29 мая 2020

Это простое приложение ioni c и конденсатора, ориентированное на iOS и Android. Мы аутентифицируем пользователей с помощью AngularFirebase, используя следующий код:

private async loginGoogleWeb() {
  const provider = new firebase.auth.GoogleAuthProvider();
  provider.addScope('profile');
  provider.addScope('email');
  const credential = await this.afAuth.auth.signInWithPopup(provider);

  this.updateUserData(credential);
}

Странно то, что ИНОГДА ответ в credential.credential.idToken включает профиль пользователя (given_name, family_name, et c.). Но в большинстве случаев idToken не включает эту информацию.

Есть идеи, почему это могло произойти? Любая помощь будет принята с благодарностью.

google idToken

1 Ответ

0 голосов
/ 31 мая 2020

Итак, после долгого поиска и чтения выясняется, что Firebase не возвращает idToken с ожидаемым профилем. Согласно одному из ответов на этот вопрос , опубликованный в Firebase Github:

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

В конце концов я «обменял» access_token, предоставленный firebase и получите профиль пользователя, используя следующий URL: https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token= {firebase_provided_access_token}

Просто разместите это на случай, если кто-то столкнется с этой проблемой в будущем.

...