簡體   English   中英

PHP中的API令牌身份驗證問題

[英]API token authentication issues in php

首先,我想說我不是英語(法語),所以這有時會帶來一些錯誤。

所以我的問題是我正在嘗試使用網站的API,可以在文檔中找到該文檔

問題在於需要身份驗證的請求,對於公共請求,一切都很好。

所以我嘗試了根據網站“檢索帳戶余額”的第一個請求,該請求是一個簽名的get方法(使用hmac256有效負載)。

事情變得越來越困難,因為文檔說有效載荷必須是recvWindow = 5000×tamp = 1540203005798(在篡改前帶有怪異的叉號),即使我認為這更多是顯示問題,或者可以在文檔中找到另一行:recvWindow = 5000&timestamp = 我的時間戳 所以這是第一個問題,因為我不知道在有效負載中使用哪個。 (但是我已經嘗試了兩者,但沒有成功……)。

然后,我寫了一個快速的PHP腳本來檢索我的信息:

<?php
include('pwd.php');
$time = time()*1000;
$sign = hash_hmac('sha256', 'recvWindow=5000&timestamp='.$time, $private);

$opts = array(
'http'=>array(
    'method'=>"GET",
    'header'=> array("Authorization" => $public,
                     "Signature" => $sign
    )
));

$context = stream_context_create($opts);

$fp = file_get_contents('https://trade.coss.io/c/api/v1/account/balances? 
recvWindow=5000&timestamp='.$time, false, $context);
echo $fp;
?>

第一個include juste包括我的公鑰和我的私鑰。

我想不通發現此腳本有什么問題,因為我嘗試對每個帶有十字架的有效載荷進行交叉,而沒有將我的時間戳與固定時間戳的十字架進行交叉,但無濟於事,我只得到500錯誤。

任何形式的幫助都是很好的。

我找到了我的問題的答案,它的答案來自有語法錯誤的標頭,而不是我寫的正確方法是:

$opts = array(
'http'=>array(
    'method'=>"GET",
    'header'=> array("Authorization: ".$public,
                     "Signature: ".$sign
    )
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM