Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook在画布下运行时不显示身份验证_Facebook_Facebook Graph Api_Authentication - Fatal编程技术网

Facebook在画布下运行时不显示身份验证

Facebook在画布下运行时不显示身份验证,facebook,facebook-graph-api,authentication,Facebook,Facebook Graph Api,Authentication,我有一个网站已经集成了Facebook登录,使用服务器端身份验证 我有一个问题要把它变成一个在Facebook下运行的应用程序 问题是Facebook根本不显示身份验证页面 因此,我甚至没有真正进入服务器身份验证过程 现在,应用程序正在我的本地计算机上运行 我的应用程序被定义为Facebook应用程序:(仅出于网站安全目的在localhost前添加空白) 画布URL:http://localhost:4300/fboot/ 安全画布URL:https://localhost:4303/fboo

我有一个网站已经集成了Facebook登录,使用服务器端身份验证

我有一个问题要把它变成一个在Facebook下运行的应用程序

问题是Facebook根本不显示身份验证页面

因此,我甚至没有真正进入服务器身份验证过程

现在,应用程序正在我的本地计算机上运行

我的应用程序被定义为Facebook应用程序:(仅出于网站安全目的在localhost前添加空白)

  • 画布URL:http://localhost:4300/fboot/
  • 安全画布URL:https://localhost:4303/fboot/“
[在没有安全URL的沙箱中运行时也会出现同样的问题]

我有一个带有“转到应用程序”按钮的“粉丝页面”。 按下一个按钮,我会找到URL: https://apps.facebook.com/[appid]/?fb_来源=时间线

浏览器开始加载带有框架的页面。 下面的框架向我提供的URL发出POST请求

我的应用程序将页面重定向到以下URL:

https://www.facebook.com/dialog/oauth?client_id=[appid]&重定向\u uri=https://localhost:4303/fbopt/hook&scope=email,用户位置,用户生日

我希望Facebook会显示应用程序身份验证表单,并提供所需的权限

不幸的是,这并没有发生。一个空页面显示在框架内,HTML是空的

我看到(从Chrome网络调试器)确实访问了URL,但响应是HTTP 200状态(不是错误),但没有响应数据

X帧选项:拒绝

响应标头-帧内渲染被拒绝!为什么

当在Facebook框架结构之外“手动”加载上面的URL时,我确实获得了具有正确权限的身份验证屏幕

我想知道在画布上使用时缺少了什么

任何关于我应该添加什么或如何调试这样一个问题的提示都将不胜感激

谢谢,
Max

你的应用程序中有
iframe
吗?发送
X-Frame-Options
内容
DENY
是Facebook对付点击劫持的方法。更多信息:


看起来像我根本的问题是我试图重定向整个页面,而不是进行帧重定向

从这里开始:

我去了这里:

它说:

由于您的应用程序正在iframe中加载,因此返回302将用户重定向到登录对话框将不成功。相反,您必须通过设置Javascript window.top.location属性进行重定向,这将导致父窗口重定向到登录对话框URL

这可能是我最大的错误


Max

我也遇到过同样的问题。302重定向之所以有效,是因为我使用了很多重定向功能,但你无法出于任何原因重定向到facebook域。如果你愿意,你可以通过javascript执行顶部重定向。我所做的是创建一个html,它接受url并将其加载到top.location,然后重定向回apps.facebook.com。使用X-frame最有可能因为您有一个AntiForgeryToken(如果使用.net),因为这将在头中插入xframe sameorigin。您可以使用

AntiForgeryConfig.SuppressXFrameOptionsHeader = true;