带有NginX和auth_request模块的CORS头

时间:2017-09-27 09:49:02

标签: rest nginx auth-request

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

我遇到的问题是,当我们的授权服务返回非200状态代码时,例如对于未授权用户401,NginX向客户端返回401而没有任何CORS头,无论它们是由NginX还是由我们的授权服务设置。

我的问题是,如果返回401,我如何在NginX的响应中添加CORS标头? NginX似乎忽略了{{1}}命令。

1 个答案:

答案 0 :(得分:0)

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

使用add_header关键字{/ 1}}可以实现这一点。

例如,

always

如果没有add_header Access-Control-Expose-Headers "X-My-Header" always;关键字,在授权服务的4xx响应的情况下,auth_request模块似乎会从响应中删除非标准标头。

有关详细信息,请参阅http://nginx.org/en/docs/http/ngx_http_headers_module.html