更改facebook重定向uri web api

本文关键字:web api uri 重定向 facebook 更改 | 更新日期: 2023-09-27 18:26:04

我想知道是否有人能帮我一把或指引我正确的方向。我已经在我的webapi2项目中设置了facebook社交登录,它运行正常。然而,当我将其部署到生产中时,我发现redirect_uri显示的是HTTP而不是HTTPS,这会导致服务崩溃。

我首先想知道的是redirect_uri是如何构建的,以及是否有任何更新方法

发生这种情况的全部原因是因为我们的负载均衡器。该站点在HTTP协议下运行,但负载平衡器接受HTTPS流量并将其重定向到HTTP。不幸的是,我无法更新负载均衡器,因此需要找到一个解决方法。

我确实尝试在IFacebookAuthenticationProviderApplyRedirect方法中拦截重定向_。然而,当我这样做的时候,一旦我登录到Facebook,我就会得到一个access_denied的错误,我不知道为什么会发生这种情况。

有人能帮我实现这个吗?我可以明确地将脸书设置的redirect_uri和cookie标记为HTTPS吗?

这是我的Facebook提供商类

public class FacebookAuthProvider : IFacebookAuthenticationProvider
{
    public void ApplyRedirect(FacebookApplyRedirectContext context)
    {
        string redirect_uri = context.RedirectUri;
        redirect_uri = redirect_uri.Replace("redirect_uri=http", "redirect_uri=https");
        context.Response.Redirect(redirect_uri);
    }
    public Task Authenticated(FacebookAuthenticatedContext context)
    {
        context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken));
        return Task.FromResult<object>(null);
    }
    public Task ReturnEndpoint(FacebookReturnEndpointContext context)
    {
        return Task.FromResult<object>(null);
    }
}

更改facebook重定向uri web api

最好的方法是在应用程序开始时更新请求方案。类似这样的东西:

app.Use((context, next) =>
{
  context.Request.Scheme = "https";
  return next();
});