【问题标题】:Facebook Connect for one application with multiple domains?Facebook Connect 用于具有多个域的一个应用程序?
【发布时间】:2010-12-13 17:25:49
【问题描述】:

我正在实现一个可嵌入不同网站(例如 Meebo、Wibiya)的插件,并且我想使用 Facebook Connect。该插件应该可以嵌入到具有不同域名的站点中。问题是,Facebook Connect 只允许您注册的每个应用程序使用一个域。

问题是,我怎样才能为一个 Facebook 应用程序拥有多个域,假设:

  1. 当用户在一个站点上“允许”应用程序时,他们不必在其他站点上也“允许”它。

  2. 最好在初次登录后,用户不会在他们登录的每个站点上看到弹出窗口(即 - 我宁愿不打开指向我的域的链接并执行从那里登录)。

有没有办法做到这一点?
如果没有,我唯一的选择是管理来自单个域的所有登录并将 cookie 传递回原始域吗?
如果我在域之间传递 cookie,我怎么能确定 Facebook 以后不会阻止这种行为?

我会很感激任何建议,但如果可能的话,我更喜欢官方解决方案而不是黑客攻击。

【问题讨论】:

标签: javascript facebook


【解决方案1】:

我假设您使用的是 Naitik Shah 的 facebook.php?当然,您的小部件需要出现在每个页面上,并包括async script connect-js。 我目前正在自己​​开发一个基于 Facebook 登录的应用程序。

我想说最好的解决方案是通过您自己的域登录并传递 cookie。您的应用程序/小部件将是他们唯一允许与之共享信息的应用程序/小部件。单页解决方案在操作上应该没有什么不同。我设想了一个 PHP 插件,它从外部域执行登录并通过小部件将 cookie 传递到站点。以您希望的方式安全地返回 cookie(除了一些狡猾的东西,比如将它存储在一个 div 中并检索它......或者黑客可能试图欺骗的东西)。然后,该站点将 cookie 用于帐户和用户 ID 目的,小部件将使用异步脚本(但通过不同的域路由)控制所有登录操作和会话查找。

抱歉,我无法提供更多帮助,但这是我能想到的唯一解决方案,而且您似乎已经有了。

在跨不同域保持会话控制方面,您只需要激活第 3 方 cookie。为您的域激活页面后,如果您尚未注销或未过期,您将已经拥有该域的 cookie。使用外部管理域的好处。

与对多个域的任何成功黑客攻击相比,这似乎也是最可靠的方法,因为我认为 fb 和 Oauth2.0 可以接受已批准的一方将信息 (cookie) 共享给已批准的另一方派对。但是.. 如果他们认为用户会有隐私问题,这可能会有问题,因为您可能会在未经用户许可的情况下在任何网站上共享 cookie。因此,您必须小心通知用户他们将自动登录的所有网站并尊重他们。

祝你好运,希望你告诉我们进展如何。

【讨论】:

  • 此@Ofirov 的任何工作代码?我陷入了困境。感谢您的回答:-)
【解决方案2】:

有一种简单而干净的技术 -> 单点登录 (SSO)。你可以搜索一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多