我的应用程序是嵌入到其他网站的小部件,但最重要的功能之一是使用facebook登录。
但现在我有一个问题
我有iframe
标签,但我也有iframe:
<a href="http://roomtobid.com/social/login/redirect/facebook" class="btn btn-info btn-lg col-md-12" >Facebook</a>
现在当我尝试点击并登录时,什么都没发生。 另外,当我查看浏览器控制台时,我收到错误:
拒绝展示 &#39; https://www.facebook.com/login.php?skip_api_login=1&api_key=17499948800008 ... m5xN3sZ3hrPQWQ44FYQPR1yPpsDwLuvoTP9jtZq6%23_%3D_&安培;显示=页面&安培;语言环境= sr_RS&#39; 在一个框架中因为它设置了X-Frame-Options&#39;到&#39; DENY&#39;。
我如何解决我的问题?
此外,我尝试在target="_top"
标记处添加<a>
,然后再将其发送给Facebook,然后将其作为回调原始域名而不是回到iFrame。
有什么方法可以解决这个问题吗?
我看到zopim聊天允许他们的访问者使用facebook登录,但是他们的facebook登录会打开到新的小窗口。
答案 0 :(得分:0)
然后发送给我第一个到Facebook然后回调到原始域而不是回到iFrame
当然不是。
它只会重定向回指定为redirect_uri
的地址 - 并且该地址必须与应用域匹配。在应用设置中指定为有效的OAuth重定向URI。
您可以做的唯一事情就是将iframe所在页面的网址作为参数添加到您的应用回调网址中,以便您的应用可以重定向到那里,之后Facebook登录已重定向回您的应用程序。
您也可以尝试将其放入会话中 - 但如果用户打开了嵌入您的小部件的多个页面,加上会话Cookie和第三方Cookie阻止很容易造成其他麻烦,则可能会出现问题。
这仍然会让您首先得到“父”页面的网址。父页面必须首先将该信息显式传输到您的窗口小部件,例如通过GET参数将它们附加到iframe src
中的窗口小部件地址。 (可以直接使用URL,也可以是某种客户端标识符,然后在数据库中查找。)