首页 > 解决方案 > Spring social:在带有负载均衡器的机器上使用 Facebook 进行身份验证

问题描述

我的网站使用 spring social (1.1.6.RELEASE) 和 spring social facebook (2.0.3.REALEASE) 让用户使用他们的 Facebook 帐户登录。

最近,Facebook 要求所有网站对“有效 OAuth 重定向 URI”使用基于 HTTPS 的 URI。这是我在 Facebook 上的“有效 OAuth 重定向 URI”:

https://www.example.com/signin/facebook   https://localhost/signin/facebook

我遵循了https://jira.spring.io/browse/SOCIAL-447的建议,并为 FacebookConnectionFactory 和 OAuth2Template 提供了自定义类,以便重定向 URI 可以以 https 开头。

在我的笔记本电脑上一切正常。但是,我无法让它在互联网上的网站上工作。

这是我系统的环境:负载均衡器设备将请求分发到两个戴尔盒子。负载均衡器接受HTTPS请求并将HTTP请求发送到盒子。

以下是我在 Internet 站点上的体验:当我单击 Facebook 按钮开始使用 Facebook 进行身份验证时,我被定向到 Facebook 登录。输入正确的用户名和密码后,我被重定向到我的站点,但出现异常:这是异常消息:

响应正文:{"error":{"message":"无法加载 URL:此 URL 的域不包含在应用程序的域中。要能够加载此 URL,请添加应用程序的所有域和子域到您的应用设置中的应用域字段。","type":"OAuthException","code":191,"fbtrace_id":"GeA8sXoebS3"}}

example.com在 Facebook 的 App Domains 领域有过,但它仍然失败。系统设置(包括负载均衡器)是否在这里发挥作用?我相信是这样,但不知道如何解决它?花了相当多的时间,没有成功。

任何建议和信息将不胜感激。

更新

我的网站已经使用 SSL 很长时间了。它与 Facebook 的身份验证以前是有效的,但现在不是因为 Facebook 最近强加的“https”要求。

标签: spring-socialspring-social-facebook

解决方案


推荐阅读