Как использовать php curl вместо header ('Location :), чтобы вернуть токен? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть ссылка API с моего сайта на Exact Online, и это работает. Первым шагом в авторизации является возврат токена с сайта Exact Online. Код использует header () для этого, как показано в моем коде ниже. Однако перенаправление header () на моем сайте (для возврата токена) не работает, когда я перенаправляю на свой сайт с другого сайта (т.е. когда я пытаюсь получить другой веб-сайт для доступа к запросу API через мой веб-сайт, как будто белый маркировка запроса). Я подозреваю, что если я заменю header () на моем веб-сайте запросом CURL, это может сработать, но пока я не смог этого сделать - может кто-нибудь помочь мне с этим?

Это код, который работает:

if (!isset($_GET['code'])) {
// If there is no token, this returns the token with the 'code' parameter
$url = "https://start.exactonline.co.uk/api/oauth2/auth";
$params = array(
    "response_type" => "code",
    "client_id" => $clientId,
    "redirect_uri" => $redirectUri
    );
$request_to = $url . '?' . http_build_query($params);
header("Location: " . $request_to);
die('Redirect');
}

Я попробовал это, но это не удалось:

$curlOpt = array();
$curlOpt[CURLOPT_URL] = 'https://start.exactonline.co.uk/api/oauth2/auth?client_id=XXXXXXXXX&redirect_uri=ZZZZZZZZ';
$curlOpt[CURLOPT_RETURNTRANSFER] = FALSE;
$curlOpt[CURLOPT_SSL_VERIFYPEER] = FALSE;
$curlOpt[CURLOPT_FOLLOWLOCATION] = TRUE;
$curlOpt[CURLOPT_POSTFIELDS] = array(
    'response_type' => 'code');
$curlHandle = curl_init();
curl_setopt_array($curlHandle, $curlOpt);
curl_exec($curlHandle);

Я подозреваю, что мой запрос CURL неверен, но я не знаю, как его исправить, и любая помощь будет признательна.

1 Ответ

0 голосов
/ 09 апреля 2019

Вызов конечной точки авторизации всегда является обычным GET (как в первом примере).Это покажет страницу входа.Не имеет значения, с какого сайта вы заходите.

...