更改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。不幸的是,我无法更新负载均衡器,因此需要找到一个解决方法。
我确实尝试在IFacebookAuthenticationProvider
的ApplyRedirect
方法中拦截重定向_。然而,当我这样做的时候,一旦我登录到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);
}
}
最好的方法是在应用程序开始时更新请求方案。类似这样的东西:
app.Use((context, next) =>
{
context.Request.Scheme = "https";
return next();
});