Authentication 解释FB connect身份验证的工作原理

Authentication 解释FB connect身份验证的工作原理,authentication,facebook,single-sign-on,cas,Authentication,Facebook,Single Sign On,Cas,我正在一个允许用户创建帐户的网站上工作。然后,网站开发人员将能够将该认证系统集成到他们的网站中,并允许用户使用我的网站登录凭据登录。我希望这样做类似于facebook connect的工作方式,这样用户站点就不需要重定向到我的站点登录,然后我们会回调到他们来自的页面 我知道facebook使用cookies,但我不确定他们是如何检查自己是否登录的 我注意到的事情: 如果登录到facebook.com,那么您将导航到具有facebook连接的userssite.com,它将显示您已登录 如果你退

我正在一个允许用户创建帐户的网站上工作。然后,网站开发人员将能够将该认证系统集成到他们的网站中,并允许用户使用我的网站登录凭据登录。我希望这样做类似于facebook connect的工作方式,这样用户站点就不需要重定向到我的站点登录,然后我们会回调到他们来自的页面

我知道facebook使用cookies,但我不确定他们是如何检查自己是否登录的

我注意到的事情:

  • 如果登录到facebook.com,那么您将导航到具有facebook连接的userssite.com,它将显示您已登录
  • 如果你退出userssite.com,它也会让你退出facebook
  • 如果您从facebook.com注销并登录到userssite1.com,然后导航到userssite2.com,您也将登录到该网站
正因为如此,看起来他们正在使用跨域cookie或其他东西,但我不知道如何做到这一点


如果有人知道Facebook Connect是如何工作的,请说明我如何在自己的系统中实现此功能?

Facebook Connect要求您创建一个新的Facebook应用程序来登录用户并对其进行身份验证,这样您就不会真正“远离Facebook”。添加facebook初始代码时:

FB.init({ appId: AppID, status: true, cookie: true, xfbml: true });
以及facebook连接代码:

<!-- Facebook required -->
<div id="fb-root"></div>
<!-- Facebook connect required -->
<script src="http://connect.facebook.net/en_US/all.js"></script>

您将应用程序链接到facebook。如果facebook应用程序中的某些内容不正确(facebook应用程序中的应用程序id、站点URL或画布URL),则该应用程序将无法工作。例如,所有登录调用都会抛出一个错误

不要认为它是一个与facebook完全分离的实体。该应用程序与facebook的链接非常好

尝试使用connect制作facebook应用程序。然后,您可以查看附加到root和connect脚本的脚本。这可能会让你对正在发生的事情有一个更好的了解(尽管有很多)

来自facebook/开发者的更多信息


这可能也很有帮助

Facebook正在很大程度上转向基于OAuth 2.0的解决方案。我们的网站和官方网站都是很好的起点。

那么,是不是在你的网站中创建一个iframe,这样你就可以访问所有facebook信息?它不会使用facebook connect创建一个iframe,但它运行大量FB脚本,用于验证用户身份并从facebook获取所有信息(比如登录状态、访问令牌和其他所需的密钥)我刚刚发现,它说它确实创建了用于通信的iFrame。我可能错了。我有一些facebook应用程序(一些使用connect,一些不使用connect),我知道facebook会将iFrame用于facebook内部运行的任何facebook应用程序,以及其他站点上的类似按钮(以及facebook的官方登录按钮),但我还没有看到在我的facebook connect应用程序中生成任何iFrame,我再次想,我可能错了,他们如何允许其他网站上的用户登录到他们的系统,而不允许第三方网站窃取登录信息?我猜他们在使用iFrame做跨网站的事情?