Nginx proxy_pass 中的 Redirect_uri_mismatch

Nginx proxy_pass 中的 Redirect_uri_mismatch

我在 Ubuntu 上使用 ASP.Net Core 3.1,并使用 Nginx 作为反向代理来连接到本地服务器上的应用程序。它的工作原理如下:

location / {
   proxy_pass         http://localhost:5002;   
}

问题始于尝试使用 Google 进行外部登录。我的应用程序在 Windows/IIS 上正常,但当使用 proxy_pass 和 Nginx 时,

请求中的重定向 URI http://localhost:5002/signin-google 与 OAuth 客户端授权的 URI 不匹配

我需要在 NginX 中将传出 URL 从 更改http://localhost:5002/signin-googlehttp://example.com/signin-google

答案1

应用程序使用 HTTPHost标头来确定其所运行的主机名。默认情况下,nginx 不会将Host标头转发到上游。

您需要添加proxy_set_header Host $host到您的配置中,这会告诉 nginx 将Host标头发送到代理服务器。

如果没有Host标头,应用程序将使用主机名和端口作为值。

相关内容