我有Firebase函数后端rest api和自定义域Firebase托管指向它,因此我不会将自己锁定到Firebase提供的域。
目前,我可以通过3个网址访问我的后端。
https://us-central1-my-project.cloudfunctions.net/app
-firebase提供的用于直接调用函数的默认URL。https://my-project.firebaseapp.com/api
-Firebase提供的默认托管,将/api
源重写为app
函数。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进行验证。
我的问题是,当客户端通过第三个url访问后端时,请求中没有Authorization
头。第一和第二工作正常。
有人知道我必须配置什么才能正确转发标头吗?
谢谢
P.S .:这是我的托管配置:
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/api/**",
"function": "app"
}
]
}
}
答案 0 :(得分:1)
已解决,问题如下:
我拥有mydomain.com
和www.mydomain.com
。我的Firebase托管设置为从www
提供服务,而mydomain.com
仅重定向到www.mydomain.com
。我已经设置客户端调用mydomain.com而不是www.mydomain.com。因此,重定向剥离标头。我要做的就是将我的客户指向www。