3

我对 facebook 开发相当陌生,但对 PHP 和 JavaScript 有经验。

我一直在阅读 SDK 文档和有关 facebook 集成的各种文章,但发现一些基本问题仍然存在于我的脑海中!

我正在努力实现以下目标:

  • 创建一个仅使用 facebook 进行注册和登录的网站
  • 使用 PHP 将注册用户的 facebook 用户 ID 存储在我的应用服务器上的数据库中,以及这些用户的一些有限的应用特定信息。所有“通用”信息(电子邮件地址等)都应从 facebook 获取。
  • 当用户登录时,获取该用户的数据库记录和 Facebook 内容的组合。

到目前为止我所取得的成就:

  • 我使用注册插件向未注册用户显示注册按钮,并为登陆页面时注销的用户显示登录按钮。如果用户已经登录,我会使用 javascript 和 jquery 隐藏登录按钮。
  • 我还有一个页面,它接收注册用户并解释signed_request,将用户的ID添加到我数据库中的用户表中。

我的困惑出现的地方:

  • 我想使用 Javascript SDK 进行用户身份验证(因为它真的很容易)——这显然是在客户端异步完成的。
  • 话虽如此,一旦用户使用 JS SDK 登录,我需要从我的数据库中获取一些数据。我很高兴通过 AJAX 请求来做到这一点,但是这需要将 facebook 用户 ID 作为该请求的一部分传递。当然,这很容易被精明的用户欺骗/更改,因此他们可以以其他人的身份登录到我的应用程序?

问题: 如何安全地将有关使用 JS API 登录的用户的信息传递到我的服务器?

如果答案是“你不能”,那么为什么还要麻烦使用 JS API 进行身份验证呢?这仅适用于真正轻触的应用程序吗?

提前感谢您的帮助!

4

2 回答 2

1

简单的答案是,您使用 cookie。这篇 Facebook 博客文章有一个清晰的示例,说明了如何实现客户端登录并将该数据公开给服务器。

于 2012-05-17T15:28:56.570 回答
0

看看签名的请求:https ://developers.facebook.com/docs/authentication/signed_request/

它为您提供了有关签名请求如何工作以及您可以/应该如何使用它们的一个很好的小入门。如果我正确理解您的问题,这应该回答您关于为什么/如何提供额外安全层的问题。发送一个签名请求,只有您的应用程序拥有自己的 app_secret 才能解码。

于 2012-05-17T15:21:38.647 回答