【问题标题】:Best practice to handle the FB access token in custom API在自定义 API 中处理 FB 访问令牌的最佳实践
【发布时间】:2017-01-24 12:18:46
【问题描述】:

我正在开发一个 restful api,其中客户端提供一个 facebook 用户 ID(比如说myapi/get_user/123),并且该 API 必须检索用户的公共信息,如姓名、生日等。它已经完成了。

当前代码

$fb = new Facebook\Facebook([
        'app_id' => $fbSettings['app_id'],
        'app_secret' => $fbSettings['app_secret'],
        'default_graph_version' => $fbSettings['default_graph_version']
]);

$token = 'EAAD...';

try {
  // Returns a `Facebook\FacebookResponse` object
  $fbResponse = $fb->get('/' . $request->getAttribute('id') . '?fields=link, name, birthday', $token);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    return $response->withStatus(500)->withJson(['msg' => $e->getMessage()]);
  exit;
}

$user = $fbResponse->getGraphUser();
return $response->withJson($user);

我的问题是我不知道处理访问令牌的最佳方法是什么。令牌是否应该由客户提供?在这种情况下,应该在同一个请求中作为参数传递(例如:myapi/get_user/123?token=ABC123)或者应该进行另一个 api 调用(比如说myapi/register_token/ABC123),从而打破无状态原则。

我正在寻找处理访问令牌的最佳方式(或最佳实践)。

【问题讨论】:

    标签: php facebook facebook-php-sdk restful-url


    【解决方案1】:

    传递访问令牌的最佳方式是在授权请求标头中:

     GET myapi/get_user/123 HTTP/1.1
     Host: mysite.com
     Authorization: <YOUR_ACCESS_TOKEN>
    

    【讨论】:

    • 有没有办法让客户端不需要提供facebook访问令牌来简化我的api的使用?
    猜你喜欢
    • 2012-08-02
    • 2011-06-28
    • 1970-01-01
    • 2019-09-09
    • 2012-12-04
    • 1970-01-01
    • 2011-08-13
    • 2019-03-23
    • 2020-11-09
    相关资源
    最近更新 更多