我使用JSSDK验证浏览器的用户, 通过FB.api(例如姓名、朋友等)索取各种信息。
我还想通过拨打ajax电话, 维持我服务器上数据库的更多用户信息(不在Facebook上) :
{ userFavouriteColour: "Red" }
为了在服务器上保存这个信息, 并与正确的用户连接, 我需要知道 Facebook 的 uid, 这带来了一个问题 。 我如何将 uid 从客户端传送到服务器 。
<强度 > 备选1:在 ajax 请求 强度 > 中添加代号 强度 > :
{ uid: "1234567890",
userFavouriteColour: "Red" }
这显然没有好处。 使用Facebook上的其他网站, 更改他们最喜欢的颜色, 向我的网络服务提出ajax要求, 是很微不足道的。
Option 2: On the server, extract the uid from a cookie: Is this even possible? I have read that Facebook sets a cookie containing the uid and access token but do I have access to this cookie on my domain? More importantly, can I securely extract the uid form the cookie or is this open to spoofing just like option 1.
Option 3: User server-side authentication on the server: I could use the server-side authentication to validate the user identity on my server. But will this work if I am already using client-side authentication on the browser? Will I end up with two different access tokens? I would like to make FB.api requests from the browser so I need the access token on the client (not just on the server).
这一定是个非常常见的假想,所以我认为我漏掉了一些基本的东西。 我读过许多Facebook文件(各种认证流程、访问标记、签名请求等)和许多SO上的文章,但我还是不明白客户端认证和服务器端认证是如何很好地结合起来的。
(我在服务器上使用 ASP. NET 和Facebook C#SDK)
< 强势 > EDIT < /强势 > : 增加的赏金。 我希望得到关于如何处理这种情况的正式建议,甚至一个例子。 如前所述,我已经阅读了许多关于认证流程的官方FB文件,但我仍然无法找到关于客户端和服务器端认证如何合作的确定性。