下面是我的Nginx配置文件,我正在其中尝试使用auth子请求对请求进行身份验证。我正面临一个问题。一旦/ auth返回401,它将重定向到Login应用程序,成功身份验证后,它将使用令牌作为请求URL中的参数再次重定向到Nginx应用程序。
喜欢
http://example.com?token=324adwasdwe434fdef
server {
listen *:80;
server_name example.com;
# Authrization server
location = /auth {
internal;
# add_header X-debug-message "Parameters being passed $is_args$args" always;
proxy_pass http://127.0.0.1:8080/auth;
}
location / {
proxy_pass http://127.0.0.1;
proxy_http_version 1.1;
auth_request /auth;
}
#if auth retrun 401 user will see the login page
location @error401 {
return 302 http://login.example.com/login/internal;
}
}
我使用此令牌在/ auth调用返回200上创建一个会话 但是当我返回代理路径时,必须在写入会话cookie
之后从URL中删除此令牌参数。我尝试了不同的方法,但是它始终出现在最终到达的网址中。
这是我到目前为止尝试过的
server {
listen *:80;
server_name example.com;
# Authrization server
location = /auth {
internal;
# add_header X-debug-message "Parameters being passed $is_args$args" always;
proxy_pass http://127.0.0.1:8080/auth;
}
location / {
#this what I tried to remove the token for the URL on the final proxy pass
if ($request_uri ~ ^(.*)&token=[a-z0-9]+$) {
return 301 $1; }
proxy_pass http://127.0.0.1;
proxy_http_version 1.1;
auth_request /auth;
}
#if auth retrun 401 user will see the login page
location @error401 {
return 302 http://login.example.com/login/internal;
}
}