2011-06-14 54 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>