Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Heroku上使用http代替https登录Spring社交Facebook_Spring_Spring Mvc_Heroku_Spring Security_Spring Social Facebook - Fatal编程技术网

在Heroku上使用http代替https登录Spring社交Facebook

在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

这是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%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。你能发布完整的解决方案作为这个问题的答案吗?这将对其他人有用。您是否能够找到此问题的解决方案?