我正在尝试使用Apache作为反向代理来设置Web服务器,连接到由kestrel托管的ASP.NET CORE Web应用程序。我遵循了这里的教程:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-3.1
该网站使用Google Calendar Api获取用户的日历信息。当我通过Visual Studio使用Kestrel托管它时,这个功能可以正常工作。但是,当我尝试通过Web服务器进行身份验证并选择Google帐户时,我被重定向到
127.0.0.1:5000/signin-oidc
这不是期望的结果。(127.0.0.1:5000已配置为Apache的ProxyPass和ProxyReverse)。
由于在没有Apache反向代理的情况下运行Web应用程序时可以正常工作,所以我怀疑有一些Apache配置问题。然而,这也可能是我正在使用的Google.Apis.Auth.AspNetCore3库的问题。我已经使用集成测试作为如何设置startup.cs以及如何进行Api请求的指南。
编辑:
所以我问了我正在使用的库的开发人员。重定向URI绑定到kestrel正在监听的端点。问题在这里:https://github.com/googleapis/google-api-dotnet-client/issues/1680 因此,只有在我能够让kestrel知道我的服务器的“实际”域名或公共IP时,它才能正常工作... 根据我的研究,这似乎几乎不可能。我将寻找其他授权和身份验证的实现选项。
由于在没有Apache反向代理的情况下运行Web应用程序时可以正常工作,所以我怀疑有一些Apache配置问题。然而,这也可能是我正在使用的Google.Apis.Auth.AspNetCore3库的问题。我已经使用集成测试作为如何设置startup.cs以及如何进行Api请求的指南。
编辑:
所以我问了我正在使用的库的开发人员。重定向URI绑定到kestrel正在监听的端点。问题在这里:https://github.com/googleapis/google-api-dotnet-client/issues/1680 因此,只有在我能够让kestrel知道我的服务器的“实际”域名或公共IP时,它才能正常工作... 根据我的研究,这似乎几乎不可能。我将寻找其他授权和身份验证的实现选项。
redirect_uri
查询参数?可能你的Web服务器正在使用一些内部主机值而不是公共值。 - Trey Griffith