Для использования аутентификации Google Signin и Firebase требуется дважды входить в систему?

Я столкнулся с проблемой, которая может сбивать с толку некоторых пользователей:

Я использую в своем приложении Firebase для хранения данных пользователей и т. Д., А для защиты данных пользователя я использую сборку в Google Authentication. Я понял, что могу определить scopes в этом процессе входа в систему, который пользователь может / должен разрешить, но я заметил, что вы не можете запрашивать ВСЕ области / службы Google (все со встроенными функциями Firebase)

поэтому я должен использовать Google JS Library также для аутентификации, чтобы получить доступ к остальным данным пользователя (я хочу показать пользователя в моем веб-приложении), хранящемся на Google.

И, может быть, это может сбить с толку, если Google signin popup показывает дважды, одно для Firebase, а другое для Google API's.

Мой вопрос: есть ли способ передать access_token в Firebase signin process (или наоборот), что у меня нет входа пользователя дважды, а Google popup отображается только один раз?


person Ichor de Dionysos    schedule 29.12.2015    source источник


Ответы (1)


Вы можете позвонить authWithOAuthToken с токеном, полученным от Google auth: см. https://www.firebase.com/docs/web/api/firebase/authwithoauthtoken.html. Оттуда:

Этот метод принимает либо один строковый аргумент для учетных данных OAuth (например, токен доступа носителя OAuth 2.0), либо объект (например, набор учетных данных OAuth 1.0a). Для входа в Facebook, GitHub и Google с токеном OAuth требуется только токен доступа к строке:

// Authenticate with Facebook using an existing OAuth 2.0 access token
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithOAuthToken("facebook", "<ACCESS-TOKEN>", function(error, authData) {
  if (error) {
    console.log("Login Failed!", error);
  } else {
    console.log("Authenticated successfully with payload:", authData);
  }
});

В примере из документации используется facebook, но то же самое относится и к токенам Google.

person Frank van Puffelen    schedule 29.12.2015
comment
Если я использую элемент Polymer firebase-auth, он там тоже работает? - person Ichor de Dionysos; 30.12.2015