带有NGINX和AUTH_REQUEST模块的CORS标题



我有一个带有auth_request模块的nginx框,该框已安装,该框通过我们的身份验证服务授权每个请求,如果授权请求,将请求转发到我们的后端服务,并添加CORS,并添加CORS标题。

我遇到的问题是,当我们的授权服务返回非200个状态代码时,例如401对于未经授权的用户,NGINX在没有任何CORS标题的情况下将401返回了客户,无论它们是由NGINX设置还是由我们的授权服务设置。

我的问题是,当返回401时,如何将CORS标头添加到Nginx的响应中?nginx似乎忽略了 add_header命令。

我设法找到了答案,以防其他人遇到相同的问题。

使用add_header使用always关键字。

可以实现这一点。

例如,

add_header Access-Control-Expose-Headers "X-My-Header" always;

没有always关键字,Auth_request模块似乎在授权服务的4xx响应的情况下从响应中剥离了非标准标头。

有关更多信息,请参见http://nginx.org/en/docs/http/ngx_http_headers_module.html

最新更新