PHP-аутентификация с использованием Grant CodeFlow - PullRequest
0 голосов
/ 08 октября 2018

Я использую OAUTH-аутентификацию.Я отправляю запрос POST к API.Но что-то не так в моем коде.Я получаю ошибку 404 назад.Кто-нибудь может мне помочь.этот API не поддерживает ClientSecret.это мой код

<?php

$callback_uri  =  "http://localhost/zeiterfassung/" ;

$client_id  =  "2371031349-3075189699-483870032-1896673008" ;

$code = $_GET['code'];

$resourc = "http://localhost/zeiterfassung/";

if (isset($_GET['code'])) {
    // try to get an access token
    $code = $_GET['code'];
    $url = 'https://adfs3int.fds.metro.info/oauth2/token';
    $params = array(
        "code" => $code,
        "client_id" => $client_id,
        "redirect_uri" => 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"],
        "grant_type" => "authorization_code"
    );

    $ch = curl_init();
    curl_setopt($ch, constant("CURLOPT_" . 'URL'), $url);
    curl_setopt($ch, constant("CURLOPT_" . 'POST'), true);
    curl_setopt($ch, constant("CURLOPT_" . 'POSTFIELDS'), $params);
    $output = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);
    if ($info['http_code'] === 200) {
        header('Content-Type: ' . $info['content_type']);
        return $output;
    } else {
        return 'An error happened';
    }

} else {

    $url = "https://adfs3int.fds.metro.info/adfs/oauth2/authorize";

    $params = array(
        "response_type" => "code",
        "client_id" => $client_id,
        "redirect_uri" => $callback_uri,
        "resource" => $resourc
    );

    $request_to = $url . '?' . http_build_query($params);

    header("Location: " . $request_to);
}
?>

enter image description here

1 Ответ

0 голосов
/ 08 октября 2018

404 - это ошибка на сайте клиента, которая говорит о том, что вы сделали что-то не так - это означает, что то, что вы ищете, находится не там, где вы ищете.Это похоже на поиск носков в вашем шкафу, но вы не можете найти носки, потому что ваши носки не находятся в шкафу.

Похоже, запрашивающий API-интерфейс размещен на вашем локальном хосте, возможно, API-интерфейс находится в другом месте.папка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...