是否可以在第三方网站的iframe中使用FB Connect?

时间:2011-09-29 20:43:20

标签: ruby-on-rails facebook iframe omniauth

我在第三方网站上有一个iframe。 iframe内部是我的应用程序,用户使用FB Connect进行身份验证。我在Ruby on Rails网站上使用omniauth gem来处理与Facebook的连接。

如果a)您已经登录FB,并且b)您已经授予我的网站使用您的详细信息的权限,它将无缝地工作。

如果缺少其中任何一个 - 在FB连接呼叫到Facebook的那一刻 - 它全部停止,我得到FB徽标和点击进入Facebook的链接。当我点击链接时 - 它将我带出我的iframe并进入Facebook。显然,一旦我回来 - 没有iframe回到我不再在第三方网站 - 但在我的。

这项技术应该可行吗?如果是这样 - 我可能会在哪里出错?正如我所说 - 如果a)和b)得到满足 - 它可以无缝地工作。

1 个答案:

答案 0 :(得分:1)

您无法在iframe中重定向到Facebook,必须将其加载到顶级页面。这就是为什么你看到FB徽标和链接,它是强制突破iframe结构的原因。如果你想避免这个中间步骤,请确保自己进行顶级重定向(通常是输出一些设置top.location的javascript代码)。

在返回方面,您可以将redirect_uri设置为指向第三方网站,而不是直接指向您的网站(或接受默认的redirect_uri,这可能是隐形的),或者如果由于您的应用而无法实现在Facebook上配置,检测您的网页是否已加载到顶层并重定向到第三方网站以强制它返回到iframe。