【发布时间】:2021-10-24 05:23:15
【问题描述】:
我正在尝试进行这样的 post 调用以返回 jwt 不记名令牌。但是在 php 中使用 cURL。所以我可以将不记名令牌保存到一个变量中,以便在 API 调用中使用。
$.ajax({
type: 'POST',
url: 'http://www.your-site.com/siteguard/api/prepare-public-jwt',
data: { api_key: 'YOUR_PUBLIC_API_KEY' },
dataType: 'json',
success: function (data) {
//Returns encoded JWT
console.log(data);
}
});
我正在使用的 PHP 代码
$url = $this->getTokenUrl();
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = ["api_key" => "xOMjVpz83rxDKjJUX9qNClB2BwadcRWjm09YSCdasdabdasdasdasdgTR8fuvR7jQHP8ZVpbOOmdXqKEt0AVX"];
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
回报是这样的
{"code":401,"status":"error","response":"Invalid Public API key","link":"http:\/\/localhost\/siteguard\/api\/prepare-public-jwt"}"
【问题讨论】:
-
1.下载邮递员,并使用所有必需的设置创建帖子。 2. 单击位于右上角的
Code按钮(在Windows 中)(距发送按钮大约下午2 点) 3. 选择所需的编程语言(在您的情况下为PHP-cURL)。 4. ??? 5. 利润! -
您是否确认令牌使用Javascript返回?您的 Siteguard 安装可能存在问题。
-
另外,在
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);之前尝试json_encode($data) -
@mulquin 它确实使用控制台中的 java 返回令牌。现在将尝试并返回结果
-
不起作用,它仍然返回相同的错误。