我们正在构建一个在docker容器中运行的dotnet核心的web应用程序。我们已经把应用程序放在WS2016上的IIS后面,它被用作反向代理。传入我们的URL的请求(www.myurl.com网站)在url重写模块的帮助下,使用容器名称作为主机名转发到相关的docker容器(在我们的例子中,我们称之为“web”)。这个装置在这里还可以工作。
然而,几天前我们需要添加Facebook oauth授权支持来注册到系统中,出现了一个问题。我们的授权设置如下:
...
services.AddAuthentication().AddFacebook(o =>
{
o.CallbackPath = new PathString("/account/facebookreturn");
o.AppId = appSettings.FacebookLogin.AppId;
o.AppSecret = appSettings.FacebookLogin.AppSecret;
})
...
https://www.facebook.com/v2.12/dialog/oauth......redirect_uri=http%3A%2F%2Fweb%2Faccount%2Ffacebookreturn&state=
....
redirect_uri
具有docker容器的容器名称/主机名,而实际上应该是“www.myurl.com网站".
我们尝试了几种解决方案,例如
x-forwarded
UseIISIntegration()
和
UseUrls