Facebook登录错误:拒绝在框架中显示,因为它将'X-Frame-Options'设置为'DENY'

时间:2013-04-26 17:03:26

标签: ruby-on-rails-3 facebook omniauth

我使用Ruby on Rails构建了一个网站,并希望使用facebook登录。使用Ominauth-Facebook gem,我可以登录计算机。但是,当几个朋友测试它时,他们都在Chrome中出错(类似于Safari说“拒绝显示文档,因为X-Frame-Options禁止显示”): enter image description here

这很奇怪,因为它适用于我的每个设备(台式机,iphone和笔记本电脑)的所有浏览器。在我的rails配置中,我已经设置了

config.action_dispatch.default_headers[:'X-Frame-Options'] = "ALLOW-FROM https://www.facebook.com"

我可能错过了什么?谢谢!

更新:如果我的朋友以某种方式成功登录一次,错误将不会再次显示。即使他从FB注销并登录我的网站。我认为这就是为什么它对我有益

2 个答案:

答案 0 :(得分:1)

这是因为Facebook不希望用户在其他网站的iframe中输入身份验证数据。这是出于安全目的。为避免这种情况,您可以尝试添加到您的链接:

:target => "_top"

答案 1 :(得分:0)

我在facebook画布上出现此错误,为了阻止这种情况,我必须删除所有的loginurl参数,我使用php sdk。

$loginUrl = $facebook->getLoginUrl();

当我尝试添加范围时,redirect_uri失败并显示问题中的错误。我检查了范围上的所有匹配到应用程序设置仍然没有喜悦,不能应用任何参数。但是,如果没有参数我的应用程序可以进行身份​​验证。