我的网站使用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开头。
一切都可以在我的笔记本电脑上正常运行。但是,我无法使其在Internet上的网站上正常工作。
这是我系统的环境:负载平衡器设备将请求分发到两个Dell机器。负载平衡器接收 HTTPS 请求,并将 HTTP 请求发送到框。
这是我在Internet站点上遇到的事情:当我单击Facebook按钮开始使用Facebook进行身份验证时,我被定向为Facebook登录。输入正确的用户名和密码后,我被重定向到我的站点,但是有一个例外:这是例外消息:
响应正文:{“错误”:{“消息”:“无法加载URL:此域 URL未包含在应用程序的域中。为了能够加载此URL, 将您应用的所有域和子域添加到“应用域”字段中 您的应用 设置。“,”类型“:” OAuthException“,”代码“:191,” fbtrace_id“:” GeA8sXoebS3“}}
我在Facebook的“应用程序域”字段中有example.com
,但仍然失败。系统设置程序(包括负载平衡器)在这里是否起作用?我相信是这样,但不知道如何解决?花了相当多的时间,但没有成功。
任何建议和信息将不胜感激。
更新
我的网站使用SSL已有很长时间了。之前曾与Facebook进行过身份验证,但现在并不是因为Facebook最近强加了“ https”要求。