nginx:仅在http请求为OPTIONS时才不需要基本身份验证

标签 nginx basic-authentication http-options-method

授权 header 不与HTTP OPTIONS请求一起发送。我只想在请求为OPTIONS时禁用此身份验证,而将其保留用于其他请求。这是我目前拥有的相关配置代码。似乎看不出为什么它不起作用。我总是在OPTIONS请求中收到401未经授权的错误。

    location ~ /foo/bar
    {

      if ($request_method = OPTIONS) {
        set $auth_basic "off";
      }
      if ($request_method != OPTIONS)
      {
        set $auth_basic "Resctricted";
        set $auth_basic_user_file /var/www/.htpasswd;
      }
      auth_basic $auth_basic;
      auth_basic_user_file $auth_basic_user_file;
    }

最佳答案

看来这是一篇旧文章,但找到了以下解决方案:

将以下配置放入“位置”中,然后从服务器中删除所有auth_basic。这会工作

  location / {
    # Your node proxy configuration for example #

    # Make options requests work #
    limit_except OPTIONS {
      auth_basic "Restricted access zone";
      auth_basic_user_file /etc/nginx/pass/protected;
    }
  }

关于nginx:仅在http请求为OPTIONS时才不需要基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598417/

相关文章:

node.js - 使用 NestJS 在 OPTIONS 上找不到 404

ajax - 如何在 ASP.NET MVC 中处理 "OPTIONS Method"

Nginx 限制域

java - Spring 可以在 OPTIONS 方法上自动生成 'Allow' header 吗?

macos - MacOSX 连接上的本地主机被拒绝

http - 部分应用程序的 Scalatra 基本身份验证

javascript - jQuery ajax 基本身份验证不起作用

authentication - 如何注销用户以进行基本 HTTP 身份验证

php - NGINX 缓存符号链接(symbolic link)网站位置

symfony - 如何通过 docker-composer 运行 symfony