Facebook PHP 重新身份验证:应用程序到服务器


facebook php re-authentication : app to server

我们的应用程序是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上下文中找到任何文档。

这可能吗? 还是我在这里走错了方向???

所以

,我想我已经找到了解决方案。

移动应用程序登录并从Facebook获得"代码"。 应用程序将代码传递给我的 API,API 调用: Facebook SDK 方法:getAccessTokenFromCode(我不得不将其从受保护更改为公共)。 如果用户未登录,这将返回错误,如果他们已登录,则会返回令牌和到期日期/时间。 如果我得到令牌响应, 我在数据库中添加一个令牌,让我的 API 正常工作。希望这对某人有所帮助...

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