STR:认证授权|新版

认证验证

生成token和secret_key

对任何需要认证的接口,必须生成token和secret_key,如果您还没有申请,请前往“个人中心-开放接口”页面进行相关操作

认证头

认证头由三部分组成:随机数Nonce、令牌Token、签名Signature

headers={"Nonce":"1534927978_ab43c","Token":"tokenndancpwk","Signature":"304409e2418545095c6c23bc0c0e2aa5d13ac316"}

随机数:是由UTC时区Unix时间戳十进制秒数格式的字符串前10位、'_'和5位随机字母或数字组成,请遵循时间误差不能超过60秒,且nonce只能被使用一次。

令牌:是用户申请的token

签名:是由token、secret_key、nonce和params的字符串组合,进行顺序排序,对有序的多个字符串拼接,再通过secret_key对数据进行sha1签名,得到返回的字符串。步骤如下:

初始数据token="tokenndancpwk",secret_key="secretwnakwnncwa",nonce="1534927978_ab43c"params={"symbol":"BTC-USDT","period":"1min","size":150},params是GET或POST参数数据排序和拼接1534927978_ab43cperiod=1minsecretwnakwnncwasize=150symbol=BTC-USDTtokenndancpwk最后使用sha1计算签名304409e2418545095c6c23bc0c0e2aa5d13ac316

示例

Python

importhashlibimportrandomimportrequestsimporttimedef_generate_header(token:str,secret_key:str,data:dict)->dict:"""生成请求头:paramtoken:token:paramsecret_key:secret_key:paramdata:参数:return:请求头字典"""nonce=_nonce()return{'Nonce':nonce,'Token':token,'Signature':_sign(token,secret_key,nonce,data。def_sign(token:str,secret_key:str,nonce:str,data:dict)->str:"""生成签名:paramtoken:token:paramsecret_key:secret_key:paramnonce:随机数:paramdata:参数:return:签名字符串"""tmp=ford,xindata

else{method=method

if(headers==null){MapemptyHead=newHashMap();headers=emptyHead;}if(data==null){JSONObjectemptyData=newJSONObject();data=emptyData;}MapsignHeaders=mkHeader(data);Mapnewheaders=newHashMap();newheaders

/***生成随机字符串**;Stringstr="";intindex;booleanflags=newboolean;//默认为falsefor(inti=0;i<5;i){do{index=rand

while(flags==true);charc=letters;str=c;flags=true;}returnstr;}/***签名方法**sort($tmpArr,SORT_STRING);$tmpStr=implode($tmpArr);$signature=sha1($tmpStr);return$signature;}functiongetRandChar($length=5){$str=null;$strPol="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";//大小写字母以及数字$max=strlen($strPol)-1;for($i=0;$i<$length;$i){$str.=$strPol;}return$str;}privatefunctionmkHeader($data){$nonce=time()."_".$this->getRandChar();$signHeaders=;return$signHeaders;}

C#

stringGetTimeStamp(){longtime=(DateTime

stringRandomStr(){stringstr="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";StringBuilderSB=newStringBuilder();Randomrd=newRandom();for(inti=0;i<5;i){SB

returnSB

stringSha1(stringparamStr){varbuffer=Encoding

returnsb

stringSign(stringnonce,JObjectdata){ListparamArr=newList();paramArr

paramArr

DictionaryMkHeader(JObjectdata){stringnonce=GetTimeStamp()"_"RandomStr();DictionarysignHeaders=newDictionary();signHeaders

Nodejs

classAApi{constructor(token,secret_key){this._token=token;this._secret_key=secret_key;this._BASE_URL='https://openapi

getNumChar(){varstr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";varn=5,s="";for(vari=0;i<n;i){varrand=Math

returns;}sign(nonce,data){varparaArrays=;for(iindata){paraArrays.push(i"="data。paraArrays.sort();varparams="";for(vari=0;i<paraArrays.length;i){params=paraArrays""}varsignature=crypto.createHash('sha1').update(params).digest('hex');returnsignature}}

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:5ms0-4:70ms