rest - 带有 NginX 和 auth_request 模块的 CORS header

标签 rest nginx auth-request

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

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

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

最佳答案

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

这可以通过使用 add_headeralways 关键字来实现。

例如,

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/

相关文章:

symfony - Liip Imagine Bundle 图像的 Nginx 访问日志

java - JSF POST 不带 "confirm for resubmision"

nginx - Redis 低延迟,每秒 1k 请求

php - Bigcommerce API 博客文章

nginx - 玩! 1.2.4 + Nginx 负载均衡器 - 无法让两个实例在 PROD 模式下协同工作

Nginx 单点登录 - auth_request 模块

nginx - 将自定义固定 header 传递给 nginx 中的 auth_request

nginx auth_request 重定向

python - Django REST 框架——如何将外键解析为实际值,而不是索引?

javascript - 使用 AngularJS 从 REST 端点下载 XML