我们的应用程序是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的上下文中找不到任何相关文档。
这可能吗?或者我在这里走错了方向???答案 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/'
);