<!-- review: finished -->

<a id="http-auth-request"></a>

# Auth Request

根据子请求的结果实现客户端授权。如果子请求返回 2xx 响应代码，则允许访问。如果返回 401 或 403，则拒绝访问，并返回相应的错误代码。子请求返回的任何其他响应代码都被视为错误。

对于 401 错误，客户端还会收到来自子请求响应的 `WWW-Authenticate` 头。

当 [从源代码构建](https://cn.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild) 时，该模块默认未构建；应通过 `‑‑with‑http_auth_request_module` [构建选项](https://cn.angie.software//angie/docs/installation/sourcebuild.md#configure) 启用。

在来自 [我们的仓库](https://cn.angie.software//angie/docs/installation/index.md#install-packages) 的包和镜像中，模块已包含在构建中。

该模块可以与其他访问模块组合，例如 [Access](https://cn.angie.software//angie/docs/configuration/modules/http/http_access.md#http-access) 和 [Auth Basic](https://cn.angie.software//angie/docs/configuration/modules/http/http_auth_basic.md#http-auth-basic)，通过 [satisfy](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#satisfy) 指令。

<a id="configuration-example-7"></a>

## 配置示例

```nginx
location /private/ {
    auth_request /auth;
#    ...
}

location = /auth {
    proxy_pass ...;
    proxy_pass_request_body off;
    proxy_set_header Content-Length "";
    proxy_set_header X-Original-URI $request_uri;
}
```

<a id="directives-8"></a>

## 指令

<a id="index-0"></a>

<a id="id3"></a>

### auth_request

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `auth_request` `uri` | `off`;   |
|--------------------------------------------------------------------------------------|---------------------------------|
| 默认值                                                                                  | `auth_request off;`             |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location          |

根据子请求的结果启用授权，并设置子请求将被发送的 URI。

<a id="index-1"></a>

<a id="auth-request-set"></a>

### auth_request_set

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `auth_request_set` $variable value;   |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | —                                     |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                |

在授权请求完成后，将请求变量设置为给定值。值可以包含来自授权请求的变量，例如 `$upstream_http_*`。
