我有一个安装了 auth_request
模块的 NginX box,它通过我们的身份验证服务授权每个请求,如果请求被授权,则将请求转发到我们的后端服务,并且还添加 CORS header .
我遇到的问题是,当我们的授权服务返回非 200 状态代码时,例如401 对于未经授权的用户,NginX 向客户端返回一个没有任何 CORS header 的 401,无论它们是由 NginX 还是我们的授权服务设置的。
我的问题是,当返回 401 时,如何将 CORS header 添加到 NginX 的响应中? NginX 似乎忽略了 add_header
命令。
最佳答案
我已经设法找到了这个问题的答案,以防其他人遇到同样的问题。
这可以通过使用 add_header
和 always
关键字来实现。
例如,
add_header Access-Control-Expose-Headers "X-My-Header"总是;
如果没有 always
关键字,在来自授权服务的 4xx 响应的情况下,auth_request 模块似乎会从响应中去除非标准 header 。
有关详细信息,请参阅 http://nginx.org/en/docs/http/ngx_http_headers_module.html
关于rest - 带有 NginX 和 auth_request 模块的 CORS header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46444706/