Аутентификация функций Firebase с удалением заголовка аутентификации хостинга - PullRequest
0 голосов
/ 27 мая 2019

У меня есть функции Firebase, бэкэнд rest api и пользовательский домен, на который указывает хостинг Firebase, поэтому я не привязываюсь к домену, предоставленному Firebase.

В этот момент я могу достичь своего бэкэнда за 3 URL.

  1. https://us-central1-my-project.cloudfunctions.net/app - URL-адрес по умолчанию, предоставляемый firebase для непосредственного вызова функции.
  2. https://my-project.firebaseapp.com/api - хостинг по умолчанию, предоставляемый Firebase, переписывающий источник /api в функцию app.
  3. https://my-custom-domain.com/api - Мой пользовательский домен настроен в Firebase, переписав источник /api в функцию app.

Теперь я могу получить доступ к своему бэкэнду по любому из них, за одним исключением. Я добавил требование аутентификации в свои функции на основе https://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint

Например, мой клиент отправляет Authorization: Bearer IdToken, затем промежуточное ПО Express считывает его и проверяет его с помощью Firebase Auth.

Моя проблема в том, что заголовок Authorization не присутствует в запросе, когда клиент обращается к бэкэнду через 3-й URL. 1-й и 2-й работают просто отлично.

Кто-нибудь знает, что мне нужно настроить, чтобы заголовок пересылался правильно?

Спасибо

P.S .: Это моя конфигурация хостинга:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],    
    "rewrites": [
      {
        "source": "/api/**",
        "function": "app"
      }
    ]
  }
}

1 Ответ

1 голос
/ 27 мая 2019

Решено, проблема была в следующем:

Я владею mydomain.com и www.mydomain.com. Мой хостинг Firebase настроен на обслуживание от www, а mydomain.com перенаправляет только на www.mydomain.com. Я настроил клиентов для вызова mydomain.com вместо www.mydomain.com. Отсюда редирект с зачищенными заголовками. Все, что мне нужно было сделать, это указать своим клиентам www.

...