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
点击iframe后,Facebook页面获得全屏显示_Facebook - Fatal编程技术网

点击iframe后,Facebook页面获得全屏显示

点击iframe后,Facebook页面获得全屏显示,facebook,Facebook,我正在尝试在我在页面上创建的IFRAME中打开facebook身份验证页面 但问题是,一旦页面加载到iframe中,我点击一个iframe,facebook认证页面就会全屏获取整个页面,iframe就会消失 https://graph.facebook.com/oauth/authorize?client_id=<id>&type=user_agent&redirect_uri=http://localhost:3662/test.web/pages/z.aspx&a

我正在尝试在我在页面上创建的IFRAME中打开facebook身份验证页面 但问题是,一旦页面加载到iframe中,我点击一个iframe,facebook认证页面就会全屏获取整个页面,iframe就会消失

https://graph.facebook.com/oauth/authorize?client_id=<id>&type=user_agent&redirect_uri=http://localhost:3662/test.web/pages/z.aspx&display=popup
https://graph.facebook.com/oauth/authorize?client_id=&type=user_agent&redirect_uri=http://localhost:3662/test.web/pages/z.aspx&display=popup

这是我在iframe src attribute中设置的url,我对此不太确定,但我认为“popup”形式因素适用于真正的弹出窗口,您应该在这里尝试“page”形式因素这是一种安全机制;用户几乎无法判断你的IFRAME是真的Facebook,还是你展示的东西看起来像Facebook。在顶部有一个完整的URL,这将变得更加透明(是的,他们应该使用有效的证书实现SSL来真正证明这一点,但是嘿)。

我自己也遇到了这个问题。我使用的解决方案

还有崎岖的步履

// trigger this any way you want
window.open(
    'https://graph.facebook.com/oauth/authorize?client_id=CLIENT_ID&display=popup&scope=PERM_LIST&redirect_url=http://example.com/oauth_redirect'
  , 'authorize'
  , 'width=600,height=350'
);
这将在弹出窗口中显示身份验证窗口。现在,下一步是如何处理重定向url(在我的示例中,
http://example.com/oauth_redirect

URL中的access_token参数保存OAuth令牌-因此检索该令牌并使用它执行任何需要的操作(存储在cookie中,无论什么)。然后使用JS控制弹出窗口和打开器的操作

<script type="text/javascript">

// Perhaps load the next page?
window.opener.location = 'http://example.com/canvas'

// close the popup
window.close();

</script>

//也许加载下一页?
window.opener.location=http://example.com/canvas'
//关闭弹出窗口
window.close();

另请参见。

出于安全原因,不允许登录iframe。使用弹出窗口代替。您可以按照Peter的建议使用
窗口。打开
或使用JS SDK,例如:。

您的意思是它最初不会在iframe中打开,还是当您单击“授权”按钮时它也会接管页面?我成功地在iframe窗口中打开了它,但当用户在iframe内部单击时,整个页面都加载了一个facebook页面。嗯,在第二个页面上,虽然这听起来很合乎逻辑。在这个过程的末尾有一个重定向,我想你不能在iframe中重定向。恐怕您必须使用一个真正的弹出窗口:/解决方法是重定向到Facebook身份验证页面,指定完成后要返回的页面:参数名称是
redirect\u uri
,而不是
redirect\u url