Facebook SDK:验证请求,以便 php 服务器知道它来自登录用户

Posted

技术标签:

【中文标题】Facebook SDK:验证请求,以便 php 服务器知道它来自登录用户【英文标题】:Facebook SDK: Authenticate requests so the php server knows it's coming from a logged in user 【发布时间】:2016-01-14 03:47:39 【问题描述】:

我的 iosandroid 游戏使用 php 与我的服务器通信。我在游戏中有 Facebook 登录。我想对请求进行身份验证,以便服务器知道它来自登录用户。我找到了这个答案:https://***.com/a/24077363/211457 但是,对于 PHP SDK 的最新版本 (v5),我看不到这种方法:

$facebook->setAccessToken($token);.

https://github.com/facebook/facebook-php-sdk-v4

【问题讨论】:

【参考方案1】:

您可以在初始化时将默认访问令牌传递给 SDK,请参阅https://developers.facebook.com/docs/php/Facebook#config

'default_access_token' => 'access-token',

此外,您可以直接指定要与每个 FacebookRequest 一起使用的访问令牌。

【讨论】:

【参考方案2】:

您应该使用 Facebook 令牌的唯一目的是从 Facebook 服务器访问某些资源。

理论上,每次用户向您自己的服务器发出请求并提供此 Facebook 令牌时,您都可以通过将其传递给 Facebook 并查看他们的服务器是否接受它来验证其有效性 - 但是这会使金额增加一倍或三倍对服务器的每个请求所花费的时间。

最好的方法是只为 Facebook 请求保留 Facebook 令牌,并为针对您自己的服务器的任何请求生成单独的令牌。此令牌存储在您的数据库中,以便快速查找以查看是否应验证请求。

【讨论】:

感谢您提供的信息,即使其他答案已被接受,我也打算使用您的建议。

以上是关于Facebook SDK:验证请求,以便 php 服务器知道它来自登录用户的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 的服务器端使用 facebook SDK 验证/验证 android 应用程序的用户访问权限?

Facebook PHP SDK 报错

Facebook API SDK (PHP) 清除站点会话

使用 Facebook php sdk 访问相册/照片时,“请求此资源需要访问令牌”

Facebook-connect:无法使用PHP SDK + JS SDK注销

Facebook Unity SDK 6.0 重新请求拒绝权限