Facebook Oauth在IE和Firefox中的Iframe失败了

时间:2012-04-27 15:40:36

标签: facebook-oauth

我正在使用Facebook Oauth。我的申请是在iframe。以下是我最初的Oauth网址:

https://graph.facebook.com/oauth/authorize?client_id=XXXXX&redirect_uri=XXXX&scope=offline_access,publish_stream

redirect_uri是https。

在IE8中,我收到以下错误页面:

[最初显示Go To Facebook.com链接] [1]

![然后显示以下错误页面] [2]

此内容无法在框架中显示

在Firefox中,它会显示空白页面。所以Facebook Oauth也没有在IE和Firefox中工作。我确实在你的网站上发现了一些帖子。但那些没有帮助我解决我的问题。

1 个答案:

答案 0 :(得分:3)

根据https://developers.facebook.com/docs/reference/dialogs/

  

iframe :供Facebook上的Canvas页面内的iframe内运行时使用。在灯箱样式的叠加层中显示对话框。由于存在点击劫持的风险,因此仅允许某些特定对话框,并要求您传递有效的access_token。 OAuth对话框不支持此模式。

即使您没有指定iframe作为显示类型,您也会在iframe中加载对话框,并且facebook会检测到这一点以防止点击劫持。

解决此问题的一个好方法是打开一个处理身份验证的弹出窗口:

<script type="text/javascript">
window.open('https://www.facebook.com/dialog/oauth?display=popup&client_id=...');
</script>

或类似内容(在您的网站上打开执行重定向的网址等)。