2009-11-24 113 views
0

当您使用“脸书连接”创建网站,并使用用户名和密码登录脸书时,脸书然后在您的网站上设置会话。使用我的应用程序密钥生成Facebook签名?

在这届会议是一个生成的“签名”

这个签名是由你的“应用程序的秘密”,只有你和Facebook知道,和散列结果MD5的数据结合创建。

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

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

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

+0

基本上我试着这样做: http://wiki.developers.facebook.com/index.php/Verifying_The_Signature 但它不为我即时通讯使用这方面的工作: HTTP://开发商.facebook.com/docs /?u = facebook.jslib-alpha.FB – 2009-11-25 07:05:25

回答

0

验证签名链接是要走的路,所以应该为你工作。

查看FBConnectAuth的源代码,它做你想做的事情,并且是通用的,这样它就可以适应任何可能出现的新的FB Connect cookie - 所以希望能够适应新的JS库。

希望帮助,

亚当

+0

其实我得到了我需要的所有信息: http://wiki.github.com/facebook/connect-js/faq Thanks Adam – 2009-12-18 18:37:33

+0

太棒了,我想我要修改FBConnectAuth,以便它可以使用新的cookie格式... Adam – 2009-12-19 00:23:05

0

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

有关如何构建签名的更多详细信息,请参见answer

Facebook提供了一个PHP示例,介绍如何在Single Sign-On部分重构sig here

我写了一个blog post做的完全一样,但用Ruby代替。

相关问题