如何在php中重定向后重用fb访问令牌

时间:2015-08-20 18:49:01

标签: php facebook-php-sdk

我刚刚开始使用最新的facebook SDK(5.0)。自从我上次使用它已经有好几年了,有一件事似乎无法解决......

按照示例代码进行操作:https://developers.facebook.com/docs/php/howto/example_facebook_login/5.0.0

我能够获得完美的登录功能。我的问题是,当你没有从Facebook重定向时,如何在下一页加载时保持此登录活动?

您曾经能够存储用户访问令牌,然后重用该令牌以保持会话的身份验证。在SDK的5.0版本中,我没有看到这样做的方法,而且我很遗憾你是如何保持登录状态的。

我不会在这里问这个问题,但是我已经找了好几天了,并且已经找到了大量使用旧代码的文章,这些代码与我正在尝试使用的当前5.0 sdk不符。我猜这是一个很小的东西,我一直在寻找,但我喜欢你们给我的任何信息。

2 个答案:

答案 0 :(得分:0)

在你给出的链接中的例子的末尾,有这一行:

$_SESSION['fb_access_token'] = (string) $accessToken;,因此访问令牌存储在PHP会话中,然后可以在页面之间访问。

您还可以将其作为users表中的字段存储在数据库中。

以下优秀升级指南:

答案 1 :(得分:0)

我知道为时已晚,但我只是想留下一个答案作为记录。来自FB official doc

配置选项

$fb = new Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_access_token' => '{access-token}',
  'enable_beta_mode' => true,
  'default_graph_version' => 'v2.3',
  'http_client_handler' => 'guzzle',
  'persistent_data_handler' => 'memory',
  'url_detection_handler' => new MyUrlDetectionHandler(),
  'pseudo_random_string_generator' => new MyPseudoRandomStringGenerator(),
]);
  

如果您未在配置中提供default_access_token   选项,或者您希望使用与默认值不同的访问令牌,   你可以显式地将访问令牌作为参数传递给get(),   post()和delete()方法。

$res = $fb->get('/me', '{access-token}');
$res = $fb->post('/me/feed', ['foo' => 'bar'], '{access-token}');
$res = $fb->delete('/{node-id}', '{access-token}');