使用 Bearer Token 检查 API 服务器是否允许访问

使用 Bearer Token 检查 API 服务器是否允许访问

如果用户可以通过 API 服务器进行身份验证,则仅应允许用户访问特定的公共文件夹。

公共文件夹和 API 服务器位于运行 nginx 1.14 开源的同一台服务器上。

我的想法是将ngx_http_auth_request_module授权标头传递给 API 服务器,如果成功则返回 200 响应代码,如果失败则返回 500 响应代码(这是构建 API 的方式)。

但我不确定如何实现它。这是我尝试过的,但似乎没有传递标头:

location /test/ {
    auth_request /auth;
}

location = /auth {
    # I dont't know if internal; should be used. tried with and without
    internal;

    proxy_pass http://api.somedomain.dev;
    proxy_set_header Content-Length "";
    proxy_set_header X-Original-URI $request_uri;
    proxy_set_header Authorization $http_authorization;

    # I also tried with and without the line below
    proxy_pass_header Authorization;
}

当我使用 Postman 查询时http://api.somedomain.dev/auth+ 添加Authorization标题即可。

当我查询时它不起作用http://api.somedomain.dev/测试+ 添加Authorization标题。

相关内容