Nginx 使用 CORS 和凭据

ric*_*i90 3 credentials nginx cors

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

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

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

ran*_*ock 8

错误消息是正确的,您不能使用通配符来源凭据:

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

对于没有凭证的请求,可以指定文字值“ *”,作为通配符;该值告诉浏览器允许来自任何来源的请求代码访问资源。尝试将通配符与凭据一起使用将导致错误

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

add_header Access-Control-Allow-Origin $http_origin always;
Run Code Online (Sandbox Code Playgroud)