Чтобы понять службу аутентификации firebase, давайте создадим простое веб-приложение, которое будет взаимодействовать с firebase.
1) Создайте проект Firebase
- Создайте проект firebase на https://console.firebase.google.com.
- Перейти к обзору проекта - ›Нажмите« Добавить firebase в свое веб-приложение ».
- Откроется всплывающее окно, в котором вы найдете точки доступа и конечные точки в соответствии с настройками вашего проекта.
- Вы будете использовать эти данные в своем внешнем html файле, который будет подключаться к firebase.
2) Включить метод входа с помощью аутентификации
- Вы находитесь внутри своего проекта на https://console.firebase.google.com.
- Перейдите на вкладку «Аутентификация» в меню слева.
- Щелкните метод входа в систему. Вы увидите все поддерживаемые методы, такие как электронная почта / пароль, телефон, Google, Facebook, Twitter и т. Д.
- Включите электронную почту / пароль и Google.
3) Создайте интерфейсное веб-приложение
- Я использую node.js в качестве локального сервера для обслуживания страницы. Если вы хотите использовать node.js, ознакомьтесь со следующей статьей:
- У меня есть одна страница с именем index.html и файл конфигурации с именем firebaseconf.js внутри общедоступного. В файле конфигурации есть все фиктивные данные. Вы должны заменить свои фактические конфигурации проекта. Я использую jquery для доступа к элементу dom.
- Откройте firebaseconf.js внутри общей папки.
- Добавьте код инициализации firebase.
// Инициализируем Firebase
var config = {
apiKey: «bjfuawfbajbawfbawawfbfawbbawflf»,
authDomain: «testproject.firebaseapp.com»,
databaseURL: «https://testproject.firebaseio.com,
projectId: «тестпроект»,
storageBucket: «testproject.appspot.com»,
messagingSenderId: «123456789123»
};
firebase.initializeApp (конфигурация);
Перейдите в index.html. Я уже создал элементы и добавил прослушиватель событий для вызова firebase. Однако, если вы хотите создать свой собственный, выполните следующие действия.
- Создайте поле электронной почты и пароля и 4 кнопки. Войти, зарегистрироваться, войти с помощью Google, выйти
- Добавить прослушиватель событий для всех кнопок.
- Вызовите службу аутентификации firebase для соответствующих действий.
- Сервис Google обработает все условия ошибки. Вам не о чем беспокоиться. Проверяйте консоль после каждого события.
Регистрация пользователя:
- Во время регистрации пользователя получите адрес электронной почты и пароль и вызовите службу аутентификации firebase createUserWithEmailAndPassword.
- Если электронная почта уже используется, попробуйте войти в систему с помощью входа в Google. Код входа в Google упомянут в статье ниже.
- После успешного создания пользователя вы можете найти его в консоли firebase.
- Зайдите в свой проект внутри https://console.firebase.google.com.
- Зайдите в «Аутентификация» - ›« Пользователи ».
- Вы можете найти информацию о вновь созданном пользователе.
- Вы также можете добавить / удалить учетную запись пользователя из консоли firebase.
$ («# Регистр»). Click (function (e) {
var email = $ («# электронная почта»). val ();
var password = $ («# пароль»). val ();
if (! email ||! пароль) {
вернуть console.log («требуется адрес электронной почты и пароль»);
}
firebase.auth (). createUserWithEmailAndPassword (адрес электронной почты, пароль)
.then (функция (результат) {
console.log (результат);
})
.catch (функция (ошибка) {
// Если пользователь уже зарегистрирован с таким же адресом электронной почты
// затем попытаемся войти в систему с помощью входа в Google
if (error.code === ‘auth / email-already-in-use’) {
var credential = firebase.auth.EmailAuthProvider.credential (электронная почта, пароль);
var provider = new firebase.auth.GoogleAuthProvider ();
firebase.auth (). signInWithPopup (провайдер)
.then (функция (результат) {
console.log (результат);
})
.catch (function (error1) {
console.log («Ошибка входа в Google», error1);
});
}
})
});
Вход пользователя:
- Во время входа пользователя получите адрес электронной почты и пароль и вызовите службу аутентификации firebase signInWithEmailAndPassword.
- Протестируйте электронную почту, которой нет в firebase.
$ («# Signin»). Click (function (e) {
var email = $ («# электронная почта»). val ();
var password = $ («# пароль»). val ();
if (! email ||! пароль) {
вернуть console.log («требуется адрес электронной почты и пароль»);
}
firebase.auth (). signInWithEmailAndPassword (электронная почта, пароль)
.then (функция (результат) {
console.log (результат);
})
.catch (функция (ошибка) {
console.log («ошибка входа», ошибка);
})
});
Вход в Google:
- Будет работать, если страница обслуживается с сервера.
- Если вы напрямую откроете index.html или свой статический файл в браузере, он может не работать. Так что лучше использовать любой статический сервер для размещения страницы. Я использую для этого node.js.
- Получите поставщика аутентификации и используйте его для вызова службы.
- Я использую всплывающее окно для ввода учетных данных Google, поэтому вызываю signInWithPopup ().
- Вы даже можете использовать signInWithRedirect ()
$ («# Gsignin»). Click (function () {
$ («# Сообщение»). Текст («»);
// Войти через Google
var provider = new firebase.auth.GoogleAuthProvider ();
provider.addScope («профиль»);
provider.addScope ("электронная почта");
return firebase.auth (). signInWithPopup (поставщик)
.then (функция (результат) {
console.log (результат);
})
.catch (функция (ошибка) {
console.log («Ошибка входа в Google», ошибка);
});
});
Выход пользователя:
Вызовите функцию auth signOut ().
$ («# Выход»). Click (function () {
firebase.auth (). signOut ();
});
Прослушивание состояния аутентификации:
- Поместите следующий код после загрузки документа. Он не является частью прослушивателя событий кнопки.
- Он будет записывать данные пользовательского объекта в консоль для целей отладки каждый раз, когда происходит изменение состояния аутентификации, такое как регистрация пользователя, вход в систему, выход из системы и т. Д.
firebase.auth (). onAuthStateChanged (функция (пользователь) {
console.log («пользователь», пользователь);
});
Для получения дополнительной информации посетите ссылку на официальную документацию firebase, указанную ниже.
Первоначально опубликовано на www.fullstacktechnos.com 21 октября 2017 г.