0

当您使用“facebook connect”构建网站并使用您的用户名和密码登录 facebook 时,facebook 会在您的网站上设置一个会话。

在那个会话中是一个生成的“签名”

该签名是通过结合只有您和 Facebook 知道的“应用程序机密”数据和经过 MD5 哈希处理的结果来创建的。

我需要用于生成该签名的算法,以便我可以重新创建它并确保它与 facebook 创建的一个签名相匹配。

if($_SESSION['facebookSignature'] == reGeneratedSignature){
   // save to database
}else{
  // go away I don't trust you
}

这样我就可以验证用户,我不需要对 Facebook 进行不必要的调用,也不需要让用户继续使用该网站。

4

2 回答 2

0

验证签名链接是要走的路,所以它应该适合你。

查看FBConnectAuth的源代码,它可以满足您的要求,并且是通用的,因此它将适应可能出现的任何新的 FB Connect cookie - 所以希望这将适应新的 JS 库。

希望有帮助,

亚当

于 2009-12-17T17:45:22.497 回答
0

重建 Facebook 创建的签名相当简单。您只需要附加所有key=value对,然后附加您的私钥,最后计算结果字符串的 MD5 哈希。

有关如何构造签名的更多详细信息,请参阅此答案

Facebook在 Single Sign-On 部分中提供了一个 PHP 示例,说明如何在此处重建 sig。

我写了一篇完全相同的博客文章,但是用 Ruby 代替。

于 2010-08-01T03:44:49.507 回答