Как мне аутентифицировать мою базу данных с помощью всего лишь строкового ключа?

Поэтому я просто хочу, чтобы все было просто, и установил auth === "StringKey" для записи, чтобы я мог писать в базу данных, если ключ совпадает. Я тестировал "StringKey" с симуляцией, он тоже работает. Однако я не знаю, где ввести ключ на HttpPost.

Я пробовал https://fake-project-name.firebaseio.com/datatable1.json?auth="StringKey", но я продолжал получать сообщения "ошибка": "Не удалось разобрать токен аутентификации". Я не уверен, что не так с синтаксисом JSON, который я ввел.

Я пытался добавить {"Authentication":"Basic 'StringKey'"}, но не уверен, что делаю для этой части.

Заранее благодарю за любую помощь.

Правила базы данных Firebase Realtime:

изображение


person MX Khronos    schedule 29.04.2018    source источник


Ответы (2)


Параметр auth для REST API базы данных Firebase принимает только веб-токены JSON (JWT). Если вы передаете случайную строку, это недопустимый JWT, поэтому он отклоняется.

Если вы хотите правильно аутентифицировать запросы REST, вам необходимо выполнить шаги, описанные в документацию по аутентификации запросов REST.

Использование общего секрета для разрешения записи в базу данных

Если, с другой стороны, вы просто хотите посмотреть, можете ли вы реализовать так называемый общий секрет, который позволяет любому, у кого есть этот секрет, писать в базу данных, вы можете выбрать другой подход.

Установите правила безопасности следующим образом:

{
  "rules": {
    "ecbyr2782t73113193193": {
      ".read": true,
      ".write": true
    }
  }
}

С помощью этих правил кто-то может читать/писать из /ecbyr2782t73113193193, если он знает секретное значение ecbyr2782t73113193193. Если они не знают это значение, нет никакого способа получить его из базы данных.

Это известно как общий секрет, поскольку вам придется делиться секретом с другими пользователями вне диапазона (например, по электронной почте или FCM).

Обратите внимание, что я по-прежнему рекомендую использовать правильную аутентификацию ваших запросов REST в дополнение к этому общему секрету.

person Frank van Puffelen    schedule 29.04.2018

Попробуй это:

поддельное-имя-проекта.firebaseio.com/datatable1.json?auth=[MY_DATABASE_SECRET]

Как получить секрет?

person Enrique Briones Arcos    schedule 01.05.2020