在Heroku上使用http代替https登录Spring社交Facebook
这是Heroku上具有有效ssl证书的Spring MVC应用程序和主机 当我从spring mvc web应用程序中单击以下链接时在Heroku上使用http代替https登录Spring社交Facebook,spring,spring-mvc,heroku,spring-security,spring-social-facebook,Spring,Spring Mvc,Heroku,Spring Security,Spring Social Facebook,这是Heroku上具有有效ssl证书的Spring MVC应用程序和主机 当我从spring mvc web应用程序中单击以下链接时 https://www.website.com/auth/facebook 它重定向到此链接 https://www.facebook.com/v2.5/dialog/oauth?client_id=1234567890&response_type=code&redirect_uri=http%3A%2F%2Fwww.website.com%2F
https://www.website.com/auth/facebook
它重定向到此链接
https://www.facebook.com/v2.5/dialog/oauth?client_id=1234567890&response_type=code&redirect_uri=http%3A%2F%2Fwww.website.com%2Fauth%2Ffacebook&scope=email&state=62b62bad-f8c8-44a3-bacf-a13ce12dfcce
在这种情况下,重定向uri采用http而不是https。如何强制https重定向uri
我遵循了问题中提到的解决方案
并创建了以下文件,但不起作用
application.properties文件包含
server.tomcat.remote-ip-header=X-Forwarded-For
server.tomcat.protocol-header=X-Forwarded-Proto
server.use-forward-headers=true
security.oauth2.client.pre-established-redirect-uri=https://www.website.com/login
security.oauth2.client.registered-redirect-uri=https://www.website.com/login
security.oauth2.client.use-current-uri=false
转到Facebook开发者,在产品标签下面转到Facebook登录 Make surEnfore https设置为是 然后在有效的oauth reidrect url中添加https url 将您的网站Url更改为https: 我真的很惊讶Facebook如何将你重定向到http!
从5月1日起,所有重定向都应重定向到https。即使在您的localhost中,您也需要创建一个自签名证书以使facebook登录正常工作。如果您使用的是.net core应用程序,那么在Startup.cs文件中的Configure方法中添加以下一行即可
app.Use((context, next) =>
{
if (context.Request.Headers["x-forwarded-proto"] == "https")
{
context.Request.Scheme = "https";
}
return next();
});
在本地主机上一切正常。问题是当站点是Heroku上的主机时,您是否更改了有效的oauth重定向URL到您的站点并在facebook中取消https?是的。Facebook现在默认强制使用https。@Keyul这个解决方案对我有效@MohamedRagab Awesome。你能发布完整的解决方案作为这个问题的答案吗?这将对其他人有用。您是否能够找到此问题的解决方案?