gpt4 book ai didi

nginx - 如何将 Nginx GET 请求重写为 POST?

转载 作者:行者123 更新时间:2023-12-03 23:14:22 32 4
gpt4 key购买 nike

我的用例是我有一封电子邮件,其中包含“验证您的电子邮件地址”链接。当用户点击这个链接时,用户代理会执行一个 GET 请求,如:

GET http://widgetwerkz.example.com/confirm_email?challenge=LSXGMRUQMEBO

服务器将作为 POST 执行此操作(因为它是一个副作用操作)。我根本无权访问服务器代码。目标请求应该是:
POST http://widgetwerkz.example.com/rpc/verify

{ "challenge": "LSXGMRUQMEBO" }

我可以执行哪些 Nginx 重写来实现这一目标?

编辑:上下文中的解决方案
http {
server {
# ...
location /confirm_email {
set $temp $arg_challenge;
proxy_method POST;
proxy_set_body '{ "challenge": "$temp" }';
proxy_pass http://127.0.0.1/rpc/verify;
set $args '';
}
}
}

这将所有这些结合在一起:
  • 将请求从 GET 转换为 POST
  • 将位置从 /confirm_email 改写为 /rpc/verify
  • 从请求中删除查询字符串(例如,结果 url 只是 /rpc/verify ,没有 ?challenge=LSXGMRUQMEBO )
  • 添加一个 JSON 主体:{ "challenge": "LSXGMRUQMEBO" }

  • 感谢伊万让我走上正轨!

    最佳答案

    你需要这样的东西:

    location /confirm_email {
    proxy_method POST;
    proxy_set_body '{ "challenge": "$arg_challenge" }';
    # your proxy_set_headers and other parameters here
    proxy_pass <your_backend>/rpc/verify?;
    }

    关于nginx - 如何将 Nginx GET 请求重写为 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53765928/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com