我在 nginx 中设置了基本身份验证
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
因此,在我保存并重新启动 nginx 后,浏览器使用 Authorization 标头传递基本身份验证
但是我的前端应用程序也使用这个标头(Authorization)向服务器创建http请求,从而导致冲突。
有没有办法让 nginx 使用另一个标头进行基本身份验证?
例如:Authorization_basic
答案1
一个非常糟糕的解决方案是使用代理认证/Proxy-Authorization 来自其中一个服务器,并且万维网认证/Authorization。虽然 nginx 是代理身份验证器的逻辑候选者,但 IIRC 它不实现代理身份验证。o 您必须交换指定或卸载代理授权的验证。
在 nginx 代理中实现 WWW-authenticate 并替换 Authorization 标头(proxy_set_header) 具有应用程序可以识别的静态值吗?
答案2
基本身份验证 (Basic Auth) 的快速概览。
叙述:
验证
- A
POST
要求使用example.api.com/v1/auth
:
Authorization: Basic YWRtaW46bGV0bWVpbg==
- POST 成功回复返回:
Authorization: Bearer f0222b68-a72d-4eb2-ac13-f6482cf484af
授权
- A
POST
要求使用example.api.com/v1/users
:
Authorization: Bearer f0222b68-a72d-4eb2-ac13-f6482cf484af
- POST 成功回复返回:
资源。