我有一个安装了add_header
模块的NginX盒子,它通过我们的身份验证服务授权每个请求,并在请求被授权时将请求转发到我们的后端服务,并且还添加了CORS头。
我遇到的问题是,当我们的授权服务返回非200状态代码时,例如对于未授权用户401,NginX向客户端返回401而没有任何CORS头,无论它们是由NginX还是由我们的授权服务设置。
我的问题是,如果返回401,我如何在NginX的响应中添加CORS标头? NginX似乎忽略了{{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