验证Facebook Connect会话

时间:2010-12-05 07:14:34

标签: facebook single-sign-on

我正在编写一个应用程序,其中有多个前端客户端使用Facebook Connect作为单点登录解决方案。

其中一个客户端,例如在iOS平台上运行,因此所有fb身份验证都通过iOS Facebook SDK在客户端上进行。但是,在用户在客户端上进行身份验证后,由于我使用Facebook登录我们的站点,服务器是否仍然从客户端获取身份验证数据并验证它?

1 个答案:

答案 0 :(得分:1)

使用Javascript SDK,调用FB.getSession()以获取具有各种auth相关位的JS对象。其中,将'access_token','expires','secret','session_key','uid'和'sig'传递给您的服务器。

在服务器端检查呼叫是否可信,将它们连接成一个字符串,例如“access_token = 1290380d9e& expires = 92d903& secret = e9cj9kd& session_key = s49i9i3f& uid = 12345”。所以你刚刚通过的一切,排除信号。

在此字符串中,连接“app secret”,您可以从Facebook developer site获取。获取字符串的MD5 hexdigest(在Python import md5; md5.new(foobar).hexdigest()中)并进行比较,看它是否与你传递的'sig'相同。