facebook php重新认证:app到服务器

时间:2013-09-11 16:47:08

标签: php facebook facebook-graph-api facebook-php-sdk

我们的应用程序是2层,手机应用程序(ios + droid)和我们的php api。

用户可以通过我们自己的用户名/密码系统登录或通过Facebook登录。

当我通过facebook使用登录时,它使用原生的fb sdk。这很有效。

但要访问我们的api,他们需要注册一个oauth令牌。这通常通过登录发生。但由于登录是通过应用程序上的fb进行的,因此api不知道这个身份验证过程。

我需要一种方法将一些标识符从facebook传递给api,然后让api验证标识符,然后为应用程序创建一个令牌,用于与我们的api通信。

我的第一个猜测是使用facebook的重新认证机制: https://developers.facebook.com/docs/facebook-login/reauthentication/

但所有这些示例都使用了javascript sdk。我在php sdk的上下文中找不到任何相关文档。

这可能吗?或者我在这里走错了方向???

1 个答案:

答案 0 :(得分:1)

所以,我想我找到了解决方案。

移动应用程序登录并从Facebook获得“代码”。应用程序将代码传递给我的api和api调用:facebook sdk方法:getAccessTokenFromCode(我必须将它从protected更改为public)。如果用户未登录则返回错误,如果登录则返回令牌和失效日期/时间。如果我收到令牌响应,我在数据库中添加令牌并让我的api正常工作。希望这有助于某人...

$fb = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxxxxxxxx'
));
$token = $fb->getAccessTokenFromCode(
    $args['fb_code'],
    'http://mydomain.com/'
);