Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何知道Facebook代币是长寿还是短命_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php 如何知道Facebook代币是长寿还是短命

Php 如何知道Facebook代币是长寿还是短命,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在为一个项目构建api,我需要使用facebook api,我知道客户端获得一个短期访问令牌并将此令牌发送到服务器,服务器获得一个长期访问令牌并发送回客户端,这是我的代码: $token = Request::header('token'); $facebook = new Facebook(array( 'appId' => Config::get('facebook.app_id'), 'secret' => Config::get('faceboo

我正在为一个项目构建api,我需要使用facebook api,我知道客户端获得一个短期访问令牌并将此令牌发送到服务器,服务器获得一个长期访问令牌并发送回客户端,这是我的代码:

$token = Request::header('token');
$facebook = new Facebook(array(
      'appId'  => Config::get('facebook.app_id'),
      'secret' => Config::get('facebook.app_secret'),
));
$facebook->setAccessToken($token);
$user = $facebook->getUser();
if($user==0){
      return 'invalid token';
}
$facebook->setExtendedAccessToken();
$newToken = $facebook->getAccessToken();
return $newToken;

之后,客户端将保存newToken以备将来的请求,问题是下次客户端将向我发送长寿令牌时,我不需要将令牌与长寿令牌交换,因为它已经是长寿令牌了,如何知道令牌是长寿还是短命?

使用facebook图形的
debug\u令牌
端点:


如果未设置
数据,则该令牌是短期令牌。
处发出的\u。

客户端为什么向您发送令牌?对我来说:当用户注册时,我会得到他/她的令牌,而且总是很短。然后将其更改为long living token,并将配对应用程序\u user\u id和long\u living\u access\u token保存在数据库中/i使用facebook登录,然后使用JS,用户使用facebook登录,如果客户端想要发送请求,则必须发送facebookToken,服务器检查facebookToken是否有效,如果有效,则用户登录,否则用户无效1。您已注册用户并存储用户id。如果javascript SDK响应“已连接”,则可以使用FacebookJavaScriptLoginHelper获取会话并检索所需的所有信息,然后发送长访问令牌请求并存储它。2.当用户返回时,您可以使用先前存储的用户id从数据库中检索长访问令牌。作为用户密钥的访问令牌是一个坏主意,因为它经常更改和过期,即使它很长(2个月左右,而不是无限期),为什么要将长寿令牌发送回客户端?几乎不需要在客户端使用长寿命令牌,因为JSSDK将确保您始终拥有有效的短命令牌。