我知道有几个与我提到的主题相关的条目,但在我检查了大部分条目后,我找不到我遇到过的类似案例。
我正在使用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定义为我的应用程序页面网址,但没有任何变化。
答案 0 :(得分:0)
我假设您正在尝试在iframe中重定向,而Facebook不允许在iframe中访问其内容。重定向顶部窗口或(更好)使用JavaScript SDK进行登录。
有关JS SDK的更多信息: