#curl #oauth-2.0 #token #exact-online
#curl #oauth-2.0 #токен #точный-онлайн
Вопрос:
У меня есть ссылка API с моего сайта на 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=XXXXXXXXXamp;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:
Вызов auth-endpoint всегда является обычным GET (как в вашем первом примере). Это покажет страницу входа. Не имеет значения, с какого сайта вы заходите.
Комментарии:
1. Спасибо — я посмотрю, разрешает ли Exact тип предоставления учетных данных клиента, чтобы я мог опубликовать учетные данные и получить токен аутентификации без необходимости входа пользователя.