我如何使用php curl而不是header('Location :)来返回令牌?

问题描述 投票:0回答:1

我有一个从我的网站到精确在线的API链接,这是有效的。授权的第一步是从Exact Online站点返回令牌。代码使用header()来执行此操作,如下面的代码所示。但是,当我从另一个站点重定向到我的站点时,我的站点上的header()重定向(返回令牌)不起作用(即,当我尝试通过我的网站访问不同的网站访问API查询时,就像白色一样标记查询)。我怀疑,如果我用CURL请求替换我网站上的header(),这可能会有效,但到目前为止我还没有这样做 - 有人可以帮助我吗?

这是有效的代码:

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请求不正确,但我不知道如何解决它,任何帮助将不胜感激。

curl oauth-2.0 token exact-online
1个回答
0
投票

对auth-endpoint的调用始终是常规GET(如第一个示例中所示)。这将显示登录页面。无论您来自哪个网站,都无关紧要。

© www.soinside.com 2019 - 2024. All rights reserved.