【问题标题】:Firebase HTTP to HTTPS NGINX redirect for custom domains dropping POST method for GET自定义域的 Firebase HTTP 到 HTTPS NGINX 重定向丢弃 GET 的 POST 方法
【发布时间】:2019-05-01 08:13:32
【问题描述】:

Firebase 无法将任何 HTTP POST 请求重定向到 HTTPS POST。例如:

POST / HTTP/1.1 主机:apis.mydomain.com

被 Firebase NGINX 重定向到

GET / HTTP/1.1 主机:apis.mydomain.com

如果你明确说明 https,那么 NGINX 可以正常工作:POST -> POST

因此,当请求到达 Firebase 托管,并将您的请求重定向到可由 https 端点访问的 firebase 函数时,该方法有可能从 POST 方法折叠为 GET。

仔细观察标题,在 Firebase Cloud Function 内部,协议始终表示为 http,而不是 https。

我假设这是一个我无法修改的内部问题,但是,这是我正在做的事情的一个问题,而且这绝对是一个问题,因为我无法修改处理我的 http(s) 请求的 NGINX .

【问题讨论】:

    标签: firebase express nginx google-cloud-functions firebase-hosting


    【解决方案1】:

    如果您使用 301 或 302 状态代码重定向,则 POST 将降级为 GET。

    您需要使用 307 状态来维护跨重定向的 POST。详情请见this document

    在 Nginx 上,您需要使用 return 语句。例如:

    return 307 https://$host$request_uri;
    

    【讨论】:

    • 这就是问题所在:我正在使用 firebase 来捕获 api 发出的 post 请求。对于这个特定的用例,它可以工作,因为我可以将所有发出的请求视为 post 或 get。但是在内部,如果我将 firebase 用于其他目的,我无法控制当他们从我的端点请求时谁会做什么,我无法改变 firebase 在内部使用 nginx 的方式。我无法修改 firebase 在内部的工作方式。我想知道这是故意的还是firebase的错误
    • 您必须联系 Firebase 支持以获取该信息。
    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 2015-08-26
    • 2018-11-07
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2011-03-29
    • 2018-01-05
    相关资源
    最近更新 更多