Merhaba;

oauth2 kullanarak youtube apide oturum açıyorum. sistem şöyle işliyor : index.php php session yoksa callback dosyasına gidip, authurl oluşturup access_token ve refresh_token alıyorum.json dosyalarına ayrı ayrı kaydediyorum. php sessionlar oluşturuluyor. daha sonra otomatik index.php ye geri dönüyorum.

sorunda burada başlıyor. index.php de eğer access_token süresi dolmuşsa refresh_token kullanarak yenileme yapıyorum. ama sayfayı her yenilediğimde access_token tekrar tekrar yenileniyor.

sorun nerede olabilir, access_token bir kere yenilendiğinde süre dolana kadar beklemesi gerekmez mi? kodları ve ekran çıktısını aşağıda görebilirsiniz.

index.php
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
   if ($client->isAccessTokenExpired()) {                
        $client->fetchAccessTokenWithRefreshToken($_SESSION['refresh_token']);
        $_SESSION['access_token'] = $client->getAccessToken();
        $client->setAccessToken($_SESSION['access_token']);    
        file_put_contents("token.json", json_encode($_SESSION['access_token']));
        echo "yenilendi<br>";
    }
    
    $kayitli_token =  file_get_contents("token.json");
    $kayitli_token = json_decode($kayitli_token);
    $guncel = $client->getAccessToken();
    echo "Kayıtlı Token Zaman : ".$kayitli_token->created."<br>";
    echo "Güncel Zaman : ".$guncel['created']."<br>";
    $kalan = $guncel['created'] - $kayitli_token->created;
    echo "Geçen Süre : ".$kalan."<br>";
    echo "Güncel Expires : ".$guncel['expires_in']."<br>";
}
else {
    $redirect_uri = 'https://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
Çıktı :