我有一个iframe,其中显示了一些用户的Facebook信息。当我的服务器为iframe生成内容时,它会检查来自Facebook的响应,指示访问代码已过期,并将重新创建的序列设置为在iframe内部发生,这对用户来说是最不明显的。但是,如果服务器检测到用户未登录,则会弹出到新的浏览器窗口以引导用户注册。
最近,我注意到我的iframe往往是空白的。问题似乎是Facebook API会在实际上甚至没有登录用户时报告访问代码已过期。尝试续订访问代码会导致Facebook重定向到登录页面。但是登录页面提供了“X-Frame-Options:DENY”标题,因此浏览器只是拒绝在我的iframe中显示任何内容。一旦我调用URL来更新访问代码,我就无法控制此过程,并且由于iframe中的内容位于不同的域中,因此托管页面甚至无法检测到何时发生这种情况。
有人知道解决方案吗?理想情况下,Facebook API会更准确地报告过期的访问令牌,但如果不这样做,如果我可以将登录页面设置为重定向到新窗口,那就太好了。