Ответ 1
Обновление: теперь проверяется проверка подлинности REST Firebase!
Аутентификация REST Firebase
Я выяснил, как выполнять проверку подлинности по электронной почте и паролю для Firebase, изучая запросы, отправленные API Javascript.
Эти API не документированы и не поддерживаются
Firebase 3
Аутентификация Firebase 3 - это обновленная и переименованная версия Google Identity Toolkit. Старая документация не совсем точна, но может быть полезна и может быть найдена здесь: https://developers.google.com/identity/toolkit/web/reference/
Firebase 3 требует, чтобы все запросы имели Content-Type: application/json
в заголовке
Ключ API
Firebase 3 требует, чтобы ключ API был привязан ко всем запросам проверки подлинности. Вы можете найти ключ API для своей базы данных, посетив обзор проекта Firebase и нажав "Добавить Firebase в ваше веб-приложение". Вы должны увидеть окно со следующим кодом:
<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"> </script>
<script>
// Initialize Firebase
var config = {
apiKey: "<my-firebase-api-key>",
authDomain: "my-firebase.firebaseapp.com",
databaseURL: "https://my-firebase.firebaseio.com",
storageBucket: "my-firebase.appspot.com",
};
firebase.initializeApp(config);
</script>
Скопируйте значение apiKey и сохраните его позже.
Регистрация
Метод: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=<my-firebase-api-key>
Полезная нагрузка:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
Ответ:
{
"kind": "identitytoolkit#SignupNewUserResponse",
"localId": "<firebase-user-id>", // Use this to uniquely identify users
"email": "<email>",
"displayName": "",
"idToken": "<provider-id-token>", // Use this as the auth token in database requests
"registered": true,
"refreshToken": "<refresh-token>",
"expiresIn": "3600"
}
Войти
Метод: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>
Полезная нагрузка:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
Ответ:
{
"kind": "identitytoolkit#VerifyPasswordResponse",
"localId": "<firebase-user-id>", // Use this to uniquely identify users
"email": "<email>",
"displayName": "",
"idToken": "<provider-id-token>", // Use this as the auth token in database requests
"registered": true,
"refreshToken": "<refresh-token>",
"expiresIn": "3600"
}
Получить информацию об учетной записи
Метод: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfo?key=<my-firebase-api-key>
Полезная нагрузка:
{
idToken: "<provider-id-token>"
}
Ответ:
{
"kind": "identitytoolkit#GetAccountInfoResponse",
"users": [
{
"localId": "<firebase-user-id>",
"email": "<email>",
"emailVerified": false,
"providerUserInfo": [
{
"providerId": "<password>",
"federatedId": "<email>",
"email": "<email>",
"rawId": "<email>"
}],
"passwordHash": "<hash>",
"passwordUpdatedAt": 1.465327109E12,
"validSince": "1465327108",
"createdAt": "1465327108000"
}]
}
Firebase 2
Эти запросы возвращают данные JSON, описанные в документах Firebase. https://www.firebase.com/docs/web/guide/login/password.html#section-logging-in
Войти
Вы можете выполнить аутентификацию, отправив запрос GET в следующем формате:
https://auth.firebase.com/v2/<db_name>/auth/password?&email=<email>&password=<password>
Регистрация
Создание пользователя также можно выполнить, отправив тот же запрос GET с помощью _method=POST
как часть строки запроса
https://auth.firebase.com/v2/<db_name>/users?&email=<email>&password=<password>&_method=POST