如何为nginx发送基本身份验证和为API身份验证发送承载令牌

如何为nginx发送基本身份验证和为API身份验证发送承载令牌,nginx,nginx-reverse-proxy,Nginx,Nginx Reverse Proxy,我正在尝试在nginx上使用反向代理和basic auth。我的API有这样一种设计:一些rest调用是开放的,而一些则需要承载令牌。我看到一篇较老的帖子,其中有人提出了在请求中使用单独变量并将其发送到API的想法。但我希望如果变量在查询中不可用,那么不要向API发送承载令牌。 以下是我的配置: location / { auth_basic "Restricted Content";

我正在尝试在nginx上使用反向代理和basic auth。我的API有这样一种设计:一些rest调用是开放的,而一些则需要承载令牌。我看到一篇较老的帖子,其中有人提出了在请求中使用单独变量并将其发送到API的想法。但我希望如果变量在查询中不可用,那么不要向API发送承载令牌。 以下是我的配置:

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配置中解决此问题,即如果在请求中未找到令牌,则添加空承载令牌