# 基于 state 参数端口分发的 OAuth2 回调 Nginx 配置 # 只保留回调分发相关配置,其他内容全部删除 # 1. 端口白名单映射(只允许指定端口) map $arg_state $target_port { default ""; ~^login(5173)_ 5173; ~^login(5174)_ 5174; ~^login(5175)_ 5175; ~^login(5176)_ 5176; ~^login(5177)_ 5177; ~^login(5178)_ 5178; } # 2. 统一回调入口,根据 state 分发到对应端口 server { listen 80; server_name 127.0.0.1; location /callback { # 未匹配到允许端口直接返回 400 if ($target_port = "") { return 400 "Invalid or unsupported state/port"; } # 反向代理到本地对应端口的 /callback proxy_pass http://127.0.0.1:$target_port/callback$is_args$args; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }