function api_oauth2_access_tokens_fetch_site_token($user = null) { $now = time(); $site_token = api_oauth2_access_tokens_get_site_token($user); if ($site_token && $site_token['expires'] <= $now) { $rsp = api_oauth2_access_tokens_delete($site_token); if ($rsp['ok']) { $user_id = $user ? $user['id'] : 0; $cache_key = "oauth2_access_token_site_{$user_id}"; cache_unset($cache_key); } $site_token = null; } # TO DO: error handling / reporting if (!$site_token) { $rsp = api_oauth2_access_tokens_create_site_token($user); $site_token = $rsp['token']; } return $site_token; }
function api_oauth2_access_tokens_fetch_site_token($user = null) { $now = time(); $site_token = api_oauth2_access_tokens_get_site_token($user); if ($site_token) { $valid_key = 1; $valid_token = 1; $key = api_keys_get_by_id($site_token['api_key_id']); if (!$key) { $valid_key = 0; } else { if ($key['deleted']) { $valid_key = 0; } else { if ($key['expires'] && $key['expires'] <= $now) { $valid_key = 0; } else { if ($site_token['expires'] <= $now) { $valid_token = 0; } else { $ttl_key = $key['expires'] - $now; $ttl_token = $site_token['expires'] - $now; if ($ttl_key < 300) { $valid_key = 0; } if ($ttl_token < 300) { $valid_token = 0; } } } } } if (!$valid_key || !$valid_token) { $rsp = api_oauth2_access_tokens_delete($site_token); $user_id = $user ? $user['id'] : 0; $cache_key = "oauth2_access_token_site_{$user_id}"; cache_unset($cache_key); $site_token = null; } } # TO DO: error handling / reporting if (!$site_token) { $rsp = api_oauth2_access_tokens_create_site_token($user); $site_token = $rsp['token']; } return $site_token; }