我目前正在我的nginx配置中实现一些逻辑,以便处理身份验证和令牌验证。我的逻辑是:
第一种情况:
-
用户尝试访问/login或/register页。
-
nginx应该将这些调用直接重定向到auth服务。
-
auth创建一个令牌并将其发送回用户。
-
结束。
第二种情况:
-
用户试图使用令牌访问/someservice/somespage页。
-
nginx应该将此调用重定向到API网关。
-
api网关验证用户是否试图访问安全资源,如果是,验证令牌并返回2xx响应。
-
nginx得到2xx响应并将用户重定向到
真实的
/一些服务
-
someservice生成响应并将其发送回用户。
-
结束。
首先,你觉得这个逻辑是正确的吗?我是否应该考虑其他选项身份验证选项?
最重要的是,如何使用nginx实现这个逻辑?
我的nginx配置如下:
http {
upstream gateway {
server ...;
}
upstream auth {
server ...;
}
upstream someservice {
server ...;
}
server {
location ^~ /api {
proxy_pass http://gateway;
# redirect ???
}
location /auth {
proxy_pass http://auth;
}
location /someservice {
proxy_pass http://someservice;
}
}
}
谢谢!