Подтвердить что ты не робот

Использование почты и пароля для аутентификации через REST API [Firebase]

Мне было интересно, действительно ли аутентифицировать для Firebase REST API с помощью с помощью настраиваемой аутентификации. > ?

Я работал с Firebase в течение некоторого времени, и теперь я думаю о переносе моего бэкэнда в Firebase. Приложение, использующее бэкэнд, в настоящее время использует REST API и вообще не нуждается в данных реального времени. Таким образом, я бы хотел использовать только REST API, а не полную платформу Android на клиентах.

Можно ли получить токен аутентификации, используя аутентификацию почты и пароля Firebase через HTTP-запросы?

В старых документах я нашел решение с пользовательским входом и новым документам вам, похоже, нужна учетная запись службы Google.

Любая помощь или совет оценены.

4b9b3361

Ответ 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

Ответ 2

От Firebase Guide Authenticate with Firebase на сайтах с использованием пользовательской системы аутентификации (см. https://firebase.google.com/docs/auth/web/custom-auth)

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

Здесь ключевая идея:

1) Добавьте Firebase в свой веб-проект и используйте Firebase REST JavaScript SDK для аутентификации и получите доступ к базе данных Storage/Realtime с Firebase.

  // TODO: Replace with your project customized code snippet
  <script src="https://www.gstatic.com/firebasejs/3.0.2/firebase.js"></script>
  <script>
    // Initialize Firebase
    var config = {
      apiKey: '<your-api-key>',
      authDomain: '<your-auth-domain>',
      databaseURL: '<your-database-url>',
      storageBucket: '<your-storage-bucket>'
    };
    firebase.initializeApp(config);
  </script>

2) Вы, пользователи приложения, входите на свой сервер аутентификации, используя свое имя пользователя и пароль. Ваш сервер проверяет учетные данные и возвращает пользовательский токен, если они действительны.

3) После того, как вы получите пользовательский токен с вашего сервера аутентификации, перейдите его в signInWithCustomToken, чтобы войти в пользовательский

firebase.auth().signInWithCustomToken(token).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});

Ответ 3

Если вы попробуете REST API, чем вам нужно выполнить все операции в вашей Apllication.

Просто возьмите данные json и отметьте ваш подлинник или нет.

используйте модифицировать метод Get и просто возьмите все данные из вашего приложения firebase.

это мой пост Rerofit + Firebase, который я опубликовал для новичка, чтобы понять соединение firebase и Retrofit.

ИЛИ

Пожалуйста, ознакомьтесь с этими ссылками, которые помогут вам...

REST auth

User Authnitication

Пример

пользоваться кодированием.......

Ответ 4

Вам нужно вернуть токен после аутентификации с помощью своей электронной почты и пароля, в соответствии с документацией вы можете вернуть токен пользователя с помощью getToken(opt_forceRefresh), доступен по следующему URL-адресу.

https://firebase.google.com/docs/reference/js/firebase.User#getToken

Ответ 5

Я считаю, что вы можете сделать одно из следующих:

Существуют также проекты GitHub для создания токенов Firebase: