"Facebook Connect","使用Twitter登录"等在技术上如何运作?

m-y*_*m-y 15 twitter cookies facebook http

我很好奇这些系统如何在技术上运作.据我了解,您以用户身份执行以下操作:

  1. 转到您最喜欢的第三方网站.
  2. 单击"Facebook Connect"按钮.
  3. 登录Facebook(如果尚未登录).
  4. 授权申请
  5. 您将被路由回登录的第三方站点.

但是,第三方网站如何与FB谈论你是谁?我可以理解当你最初授权应用程序时它如何能够获得所需的信息,但之后会怎么知道呢?这是一个场景:

  1. 你去Facebook并登录.
  2. 然后,您转到您最喜欢的第三方网站(您已经授权).
  3. 它已经知道你已经登录了!

daa*_*aku 10

执行使用IFrame的后台ping,如果当前已登录的帐户已经授权应用程序,则将访问令牌和用户ID返回给应用程序.有了这个,应用程序可以决定做什么(通常,设置一个cookie并刷新页面,以便服务器可以重新呈现页面,知道你是基于刚刚设置的cookie的人).如果你很好奇,可以在这里查看名为FB.getLoginStatus()的客户端JS方法的Facebook实现:http://github.com/facebook/connect-js/blob/master/src/core/auth .js文件#L117

  • 在这一点上,我建议改为查看https://github.com/oyvindkinsey/easyXDM.Øyvind现在也可用于我们的JS SDK :) (2认同)