3

我有一个auth_request安装了模块的 NginX 盒子,它通过我们的身份验证服务授权每个请求,如果请求被授权,则将请求转发到我们的后端服务,并添加 CORS 标头。

我遇到的问题是,当我们的授权服务返回非 200 状态代码时,例如未授权用户的 401 时,NginX 会在没有任何 CORS 标头的情况下向客户端返回 401,无论它们是否由 NginX 设置或通过我们的授权服务。

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

4

1 回答 1

3

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

这可以使用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

于 2017-09-27T10:37:18.223 回答