【问题标题】:oath2 access token API response "expires_on" date not validoauth2 访问令牌 API 响应“过期”日期无效
【发布时间】:2020-11-27 23:39:22
【问题描述】:

我正在对照伦敦当前日期检查我的访问令牌的到期日期。我只是想在这个阶段转换时间/日期。有人可以向我解释为什么我的回复中的到期日期是在生成访问令牌之前吗?我在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));

?>

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

【问题讨论】:

    标签: php api oauth oauth-2.0 access-token


    【解决方案1】:

    看起来您使用 var_dump 的副作用是搞乱了 $expires 变量 - 这很有效:

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

    【讨论】:

    • 啊,是的,从 $expires 变量中删除 var_dump 并写入 $expires = $tokenResponse_data-&gt;{'expires_on'}; 就可以了。谢谢加里!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2017-01-10
    • 2017-04-11
    • 2019-03-10
    • 2011-03-07
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多