Facebook Canvas / X-Frame-Option中的Web应用程序拒绝案例

时间:2015-06-30 10:42:52

标签: spring facebook oauth x-frame-options

我知道有几个与我提到的主题相关的条目,但在我检查了大部分条目后,我找不到我遇到过的类似案例。

我正在使用Spring MVC框架实现一个简单的Web应用程序。 Web应用程序本身运行正常。然后我尝试将应用程序的某些部分定义为Facebook应用程序,其中某些jsp将在Facebook的画布中显示。

在Spring的控制器部分与Facebook应用程序定义相关 - 通过Facebook应用程序管理页面中定义的安全画布网址 - ,我检查了来自Facebook的“signed_request”参数的POST消息,如果它不包含“oauth_token” “值,然后我尝试重定向到Facebook身份验证流程:

重定向:https://www.facebook.com/dialog/oauth?client_id=#1&redirect_uri=#2

(#1是我的应用ID的占位符,#2是我想在成功验证后重定向的网址的占位符,与我自己的网络应用相关的网址)

在我目前的情况下,我观​​察到的是我打开了应用程序提供的Facebook页面,通过Facebook获得了HTTP POST,将重定向返回到Facebook端,使用url发出HTTP GET请求的浏览器为

https://www.facebook.com/dialog/oauth?client_id=#1&redirect_uri=#2

但之后会收到如下错误:

拒绝在一个框架中显示“https://www.facebook.com/dialog/oauth?client_id=......&redirect_uri= .....”,因为它将“X-Frame-Options”设置为“DENY”。

我首先想到的是我的环境将X-Frame-Options标头值返回为DENY,我更改了Spring安全配置,但没有任何变化。

然后只是为了尝试,我在Facebook上将redirect_uri定义为我的应用程序页面网址,但没有任何变化。

1 个答案:

答案 0 :(得分:0)

我假设您正在尝试在iframe中重定向,而Facebook不允许在iframe中访问其内容。重定向顶部窗口或(更好)使用JavaScript SDK进行登录。

有关JS SDK的更多信息: