Nginx,具有动态路径参数的身份验证请求

Nginx,具有动态路径参数的身份验证请求,nginx,auth-request,Nginx,Auth Request,我的web服务有如下几个URL: POST /service GET /service/a59aeaba-7f3f-4826-896a-aeb48e1db256 POST /service/a59aeaba-7f3f-4826-896a-aeb48e1db256/action1 POST /service/a59aeaba-7f3f-4826-896a-aeb48e1db256/action2 ... 另外,我有不同的url,它有授权检查,如果成功,将返回代码200,如果失败,将返回401:

我的web服务有如下几个URL:

POST /service
GET /service/a59aeaba-7f3f-4826-896a-aeb48e1db256
POST /service/a59aeaba-7f3f-4826-896a-aeb48e1db256/action1
POST /service/a59aeaba-7f3f-4826-896a-aeb48e1db256/action2
...
另外,我有不同的url,它有授权检查,如果成功,将返回代码200,如果失败,将返回401:

GET /service/auth/a59aeaba-7f3f-4826-896a-aeb48e1db256
现在路径中有一个uuid值作为参数,它是动态值

我不知道如何捕获
/service/{uuid}/*
url并向
/service/auth/{uuid}
发出
auth\u请求,然后在成功响应后继续
/service/{uuid}


甚至可以在Nginx中这样做吗?

您可以使用regex捕获它

location ~* ^/service/(?<uuid>.+)/ {
location~*^/service/(?。+)/{

现在uuid位于命名组中,您可以稍后将其称为${uuid}

您可以使用正则表达式捕获它

location ~* ^/service/(?<uuid>.+)/ {
location~*^/service/(?。+)/{

现在uuid在命名组中,您可以稍后将其称为${uuid}

继续/service/{uuid}是什么意思?您可以通过多种方法捕获字符串和代理传递或重定向到service/auth/{uid}。我觉得如果您控制/service/auth/{uuid}的返回代码,就可以这样做/但这是一个完整的3个代理过程和不同的配置。你能告诉我成功的身份验证和不成功的身份验证返回什么http代码吗?@flaixman如果成功,它将返回200,如果成功,它将返回401fails@Mr.D你能找到解决方案吗?我陷入了一个类似的情况,我需要一个捕获组(regex)从location指令中开始,在proxy_pass中使用。它在没有auth_请求时工作,但在我使用auth_请求时不工作。它是什么意思继续/service/{uuid}?您有捕获字符串和proxy_pass或重定向到service/auth/{uid}的方法。我觉得如果您控制/service/auth/{uuid}的返回代码,就可以这样做/但这是一个完整的3个代理过程和不同的配置。你能告诉我成功的身份验证和不成功的身份验证返回什么http代码吗?@flaixman如果成功,它将返回200,如果成功,它将返回401fails@Mr.D你能找到解决方案吗?我陷入了一个类似的情况,我需要一个捕获组(regex)从location指令中,在proxy_pass中使用。它在没有auth_请求时有效,但在我使用auth_请求时无效。是否可以从auth_请求调用的单独位置引用它?将其分配给全局变量是否可以从auth_请求调用的单独位置引用它?将其分配给全局变量