我有一个从我的站点到Exact Online的API链接,并且可以正常工作。授权的第一步是从Exact Online网站返回令牌。代码使用header()来执行此操作,如下面的代码所示。但是,当我从另一个站点重定向到我的站点时(即,当我尝试让另一个网站通过我的网站访问API查询时),我网站上的header()重定向(返回令牌)不起作用。标记查询)。我怀疑如果将我网站上的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请求不正确,但是我不知道如何解决它,我们将不胜感激。
答案 0 :(得分:0)
对auth-endpoint的调用始终是常规GET(如您的第一个示例)。这将显示登录页面。不管您来自哪个网站。