oauth2 访问令牌 API 响应 "expires_on" 日期无效

oath2 access token API response "expires_on" date not valid

我正在根据伦敦的当前日期检查我的访问令牌的到期日期。我只是想在此阶段转换 time/date。有人可以向我解释为什么我的回复中的到期日期早于生成访问令牌吗?我是 运行 它在 http://phpfiddle.org/

我称之为 API: https://login.microsoftonline.com/"ID"/oauth2/token

并得到这样的回应: "expires_on": "1596726056",

然后相信我正在将它从纪元转换为人类可读:

$expires = var_dump($tokenResponse_data->{'expires_on'});

var_dump(date('Y-m-d h:i:s', $expires));

但得到这个结果,即使我今天才生成令牌: “1969-12-31 07:00:00”。

这是完整的代码,减去了我的凭据:

    <?php

    $curl_handle = curl_init();
    
    $tokenUrl = "https://login.microsoftonline.com/"app id"/oauth2/token";
    
    curl_setopt($curl_handle, CURLOPT_URL, $tokenUrl);
    
    curl_setopt($curl_handle, CURLOPT_POST, 1);
    
    curl_setopt($curl_handle, CURLOPT_POSTFIELDS,
            "grant_type=client_credentials&client_id="id"&client_secret="client secret"--r~-PWm1&scope=https://graph.microsoft.com/Calendars.Read");
    
    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
    
    $curl_tokenData = curl_exec($curl_handle);
    
    curl_close($curl_handle);

    $tokenResponse_data = json_decode($curl_tokenData);

    $expires = var_dump($tokenResponse_data->{'expires_on'});

    var_dump(date('Y-m-d h:i:s', $expires));

?>

我没有做错什么?有任何想法吗?谢谢。

看起来像是您使用 var_dump 的副作用,它弄乱了 $expires 变量 - 这个有效:

$expires = 1596726056;
var_dump($expires);
$displayValue = date('Y-m-d h:i:s', $expires);
var_dump($displayValue);