【问题标题】:Nginx using CORS with credentialsNginx 使用 CORS 和凭据
【发布时间】:2020-12-03 14:11:49
【问题描述】:

我正在构建一个通过 Nginx 服务器与 Laravell API 通信的 Web 应用程序。我尝试按照 Nginx 网站上针对 wide open cors 的说明进行操作,但它在发送凭据时不喜欢通配符响应。

CORS 策略已阻止从源“http://localhost:8080”访问“https://api.***.com/”获取:对预检请求的响应未通过访问控制检查:当请求的凭据模式为“包含”时,响应中的“Access-Control-Allow-Origin”标头的值不能是通配符“”。

API 服务器需要一个 Bearer 访问令牌来进行身份验证,并且每个端点在服务器上都有自己的路径。在这种情况下配置 Nginx 的正确方法是什么?

【问题讨论】:

    标签: nginx cors credentials


    【解决方案1】:

    错误信息是对的,你不能使用通配符来源凭证:

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

    对于没有凭据的请求,可以指定文字值“*”作为通配符;该值告诉浏览器允许从任何来源请求代码来访问资源。正在尝试将通配符与凭据 will result in an error 一起使用。

    相反,只需传回实际的来源,即到达 Origin HTTP 标头的那个,那么它将始终匹配:

    add_header Access-Control-Allow-Origin $http_origin always;
    

    【讨论】:

      猜你喜欢
      • 2019-06-27
      • 2018-12-03
      • 2018-02-21
      • 2016-07-13
      • 2018-10-31
      • 2021-08-22
      • 2022-01-14
      • 2018-08-17
      相关资源
      最近更新 更多