2009-11-24 103 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代替。

相關問題