首先,我使用的是:Codeigniter 3和darkswering/facebook-sdk-Codeigniter,这是一个用于Codeigniter的facebook-sdk库。
为了在我的应用程序上使用facebook登录,我生成了一个登录url,并在该url上重定向用户。它在本地和我的网站上都很好用。
问题是当一个使用以下网址在facebook选项卡上添加我的应用程序时:
https://www.facebook.com/dialog/pagetab?app_id=myid&重定向uri=https://myurl.url/
我在页面选项卡上看到我的应用程序,但当我试图点击iframe内的登录url时,我会看到一个空白页面,javascript控制台上有以下消息:
X-Frame-Options拒绝加载:https://www.facebook.com/v2.6/dialog/oauth?client_id=xxxxxxx&state=xxxxxxxx&response_type=代码&sdk=php-sdk-54.4.4&重定向uri=https://myurl.url/&scope=电子邮件不允许框架。
我知道facebook阻止了网站在iframe中显示,但我不明白我是如何使用iframe内的facebook PHP SDK登录的?
有什么想法吗?谢谢
我知道facebook阻止了网站在iframe中显示,但我不明白我是如何使用iframe内的facebook PHP SDK登录的?
您需要在顶部窗口实例中打开登录对话框。
target="_top"
如果您使用链接触发登录,请分别top.location.href="…"
(如果使用JavaScript重定向)。
或者,嵌入JS SDK,并使用FB.login
,这会带来更好的用户体验,因为它不需要重定向到当前Facebook页面之外,而是会在覆盖中显示登录对话框。