nginx auth_request:访问原始查询参数

时间:2016-04-06 14:22:53

标签: authentication nginx

我试图弄清楚是否可以将查询参数从原始网址转发到auth_request处理程序/服务?

用户应该能够将API令牌添加为查询参数,如下所示: https://example.com/api/user?token=237263864823674238476

而不是通过headercookie。我可以在auth-service中以某种方式访问​​token参数吗?或者用NGINX在自定义标题中写token查询参数?
到目前为止试过这个:

location = /api/user {
  auth_request /auth;
  proxy_set_header X-auth-token-from-query $arg_token;

  proxy_pass http://<url>;
}

/auth端点没有获得X-auth-token-from-query标头,但在返回200之后,上游代理确实获得了标头。

1 个答案:

答案 0 :(得分:7)

您很可能也希望将url(uri)传递给auth-request端点。你可以一次性完成这个任务:

location = /api/auth {
  proxy_set_header X-Original-URI $request_uri;
  proxy_set_header X-Original-METHOD $request_method;
  proxy_pass_request_body off;
  proxy_set_header Content-Length "";

  proxy_pass http://<url>;
}

奖金:我也通过了这个方法! :多田: