документация, которую вы указали там: Аутентификация с помощью входа в Google с помощью JavaScript .
Вы можете позволить своим пользователям проходить аутентификацию с помощью Firebase, используя свои учетные записи Google, интегрируя Google Sign-В в вашем приложении.Вы можете интегрировать Google Sign-In, либо используя Firebase SDK для выполнения процесса входа, либо выполнив поток Google Sign-In вручную и передав получившийся токен ID в Firebase.
Прежде чем начать:
- Добавьте Firebase в свой проект JavaScript.
- Включите вход в Google в консоли Firebase:
- В консоли Firebase откройтеРаздел Auth.
- На вкладке «Метод входа» включите метод входа в Google и нажмите «Сохранить».
- Обработка потока входа с помощью Firebase SDK Если вы создаете веб-приложениеСамый простой способ аутентификации ваших пользователей с помощью Firebase с использованием их учетных записей Google - это обработать поток входа с помощью Firebase JavaScript SDK.(Если вы хотите аутентифицировать пользователя в Node.js или другой среде без браузера, вы должны обработать поток входа вручную.)
Для обработки потока входа с помощью Firebase JavaScriptSDK, выполните следующие действия:
Создайте экземпляр объекта поставщика Google:
var provider = new firebase.auth.GoogleAuthProvider();
Необязательно: Укажите дополнительные области OAuth 2.0, которые вы хотите запросить у поставщика проверки подлинности.Чтобы добавить область, позвоните addScope()
.
Например:
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
См. Документацию поставщика проверки подлинности.Необязательно: Чтобы локализовать поток OAuth провайдера на предпочтительном языке пользователя без явной передачи соответствующих пользовательских параметров OAuth, обновите код языка в экземпляре Auth перед запуском потока OAuth.
Например:
firebase.auth().languageCode = 'pt';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();
Необязательно: Укажите дополнительные параметры настраиваемого поставщика OAuth, которые вы хотите отправить с запросом OAuth.Чтобы добавить пользовательский параметр, вызовите setCustomParameters для инициализированного поставщика с объектом, содержащим ключ, указанный в документации поставщика OAuth, и соответствующее значение.
Например:
provider.setCustomParameters({
'login_hint': 'user@example.com'
});
Зарезервировано обязательноПараметры OAuth недопустимы и будут игнорироваться.См. Ссылку поставщика аутентификации для получения дополнительной информации.Выполните аутентификацию с помощью Firebase, используя объект провайдера Google.Вы можете предложить своим пользователям войти в систему с помощью их учетных записей Google, открыв всплывающее окно или перенаправив на страницу входа.Метод перенаправления предпочтителен на мобильных устройствах.
Чтобы войти с помощью всплывающего окна, позвоните signInWithPopup:
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
Также обратите внимание, что вы можете получить токен OAuth провайдера Google, который можетиспользоваться для получения дополнительных данных с помощью API Google.Здесь также можно отлавливать и обрабатывать ошибки.Список кодов ошибок см. В справочных документах Auth.
Чтобы выполнить вход, перенаправив на страницу входа, вызовите signInWithRedirect:
firebase.auth().signInWithRedirect(provider);
Затем вы также можетеполучить токен OAuth поставщика Google, позвонив по номеру getRedirectResult()
при загрузке страницы:
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// ...
}
// The signed-in user info.
var user = result.user;
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});