如何为nginx发送基本身份验证和为API身份验证发送承载令牌
我正在尝试在nginx上使用反向代理和basic auth。我的API有这样一种设计:一些rest调用是开放的,而一些则需要承载令牌。我看到一篇较老的帖子,其中有人提出了在请求中使用单独变量并将其发送到API的想法。但我希望如果变量在查询中不可用,那么不要向API发送承载令牌。 以下是我的配置:如何为nginx发送基本身份验证和为API身份验证发送承载令牌,nginx,nginx-reverse-proxy,Nginx,Nginx Reverse Proxy,我正在尝试在nginx上使用反向代理和basic auth。我的API有这样一种设计:一些rest调用是开放的,而一些则需要承载令牌。我看到一篇较老的帖子,其中有人提出了在请求中使用单独变量并将其发送到API的想法。但我希望如果变量在查询中不可用,那么不要向API发送承载令牌。 以下是我的配置: location / { auth_basic "Restricted Content";
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "";
proxy_set_header Authorization "Bearer $arg_token";
proxy_pass_header Authorization;
#proxy_redirect off;
proxy_pass https://192.168.0.37/myapi/;
#proxy_set_header Host $host;
proxy_redirect default;
}
因此,我无法将请求发送到nginx服务:
http://my-server-ip/api/v1/customer?id=12345&token=0pyLQi6CcHtoEJojPTt48qEnqDo/8NGc
但我希望,当我需要访问一个开放的api URL时,就不需要在请求中发送任何令牌,但通过上述设置,我必须发送令牌,即使是空字符串,因为我的api可以忽略此令牌
http://my-server-ip/api/v1/allcustomers?token=''
是否可以避免发送空令牌,并在nginx配置中解决此问题,即如果在请求中未找到令牌,则添加空承载令牌