2011-06-14 52 views
1

我似乎記得,在Facebook Apps公佈隱私問題並泄露用戶ID之後,Facebook宣佈正在考慮進行更改。如果我記得,這種更改應該是應用程序將收到重寫的用戶ID而不是實際的用戶ID。這有什麼用嗎?讚賞官方聲明和/或開發人員文件的鏈接,澄清這一點將不勝感激。交叉引用Facebook用戶ID

總之,我想建立兩個彼此密切相關的獨立應用程序,並且我希望能夠在這兩個應用程序之間交叉引用用戶ID(如果可能)。有這樣做的最佳做法嗎?

+0

這不是編程相關的。 – Alan 2011-06-14 00:24:08

+0

我認爲這是一個API問題,以及給出我描述的用例的一個(隱含的)最佳實踐問題。如果您認爲這會更好,我可以編輯以強調圍繞我的用例的問題。 – DuckMaestro 2011-06-14 00:27:54

+0

我看到你想要的東西,但是你要問的東西是特定於Facebook的東西。從StackOverflow常見問題解答:特定的編程問題 軟件算法 程序員常用的軟件工具 編程界專有的問題 – Alan 2011-06-14 00:45:05

回答

2

看看這個博客文章,應該提供一些指導。 https://developers.facebook.com/blog/post/431/

目前,我們通過iframe的應用在URL中fb_sig_user查詢字符串參數。這允許應用程序識別用戶並創建定製的社交體驗。由於瀏覽器的工作方式,當有人點擊iframe中的鏈接時,URL中的這些信息可能會無意中在HTTP Referrer頭中傳遞。

我們最初提出的解決此問題的方案是使用加密作爲防止無意共享的手段,但仍將此加密的UID傳遞到URL中。在與社區交流之後,我們更新了我們提議的解決方案,以便使用不同的機制,爲用戶提供更好的保護,同時最大限度地減少對現有應用程序的影響,並消除使用加密庫的需要。

簡而言之,這個新建議將UID嵌入到HTTP POST主體中,以確保它不會暴露在任何HTTP Referrer標頭中(加密或其他方式)。我們通過創建針對應用畫布URL一個<form/>元素做到這一點:

<form target="canvas_iframe" action="http://example.com/" id="canvas_form"> 
    <input name="fb_sig_user" value="1234" type="hidden" /> 
</form> 
<iframe name="canvas_iframe"></iframe> 
<script> 
    document.getElementById("canvas_form").submit() 
</script>