0

我正在使用 Facebook Oauth。我的应用程序在 iframe 中。以下是我最初的 Oauth URL:

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 中工作。我确实在你的网站上找到了一些帖子。但那些并没有帮助我解决我的问题。

4

1 回答 1

3

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

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

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

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

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

或类似的东西(在您的网站上打开一个执行重定向的 URL 等)。

于 2012-05-03T14:19:31.560 回答