我们正在将应用程序集成为工作中的 facebook 应用程序。我希望能够检测用户是否已登录 facebook,如果没有,则提示进行身份验证。
到目前为止,我们已经成功使用了 facebook SDK 和它提供的登录功能。但是,这会导致我们的应用程序创建一个身份验证弹出窗口,并且它被大多数浏览器阻止,因此我们的首要任务是重新实现身份验证逻辑以不使用弹出窗口。
根据 facebook 文档中的本教程,可以通过对用户状态更改请求使用事件订阅(在用户注销时不起作用)或通过获取访问令牌来完成。问题是令牌作为请求参数返回到顶部窗口(我在用户验证后指定为返回 url 的 url)。由于存在一些跨域和浏览器限制,我无法使用客户端脚本来获取值,并且我被卡住了。
此处已提出相关问题,常见问题是大多数应用程序正在运行localhost
。但是,我们的应用程序的情况是,我们已将应用程序部署到本地网络服务器,该服务器由公共域公开,但仍然存在跨域限制问题。它在 facebook 应用程序配置中被其公共域名引用。我完全相信这些域可以从外部完全访问。
一般来说,我们的情况是,我们希望在 Facebook 用户使用该应用程序时托管该应用程序。也许这种方法可能与我们的要求不兼容?是否可以配置跨域通信以避免该问题?还有其他方法可以避免 facebook 登录弹出窗口吗?