接口文档如下:
GET /list?bucket=<Bucket>&marker=<Marker>&limit=<Limit>&prefix=<UrlEncodedPrefix>&delimiter=<UrlEncodedDelimiter> HTTP/1.1
Host: rsf.qbox.me
Content-Type: application/x-www-form-urlencoded
Authorization: QBox <AccessToken>
我在服务端调用该接口的过程中,通过加密管理凭证的算法将AccessToken添加在了Authorization头部中(采用nodeJS),在使用中间件进行请求的过程中一直返回bad token,算法的运算有验证过文档中给的例子,得到的encodedSign是正确的
let signingStr = '/list?bucket=bucketName\n'
let encodedSign = crypto.HmacSHA1(signingStr, secretKey).toString(crypto.enc.Base64)
let AccessToken = `${accessKey}:${encodedSign}`
request({
url: 'http://rsf.qbox.me/list?bucket=bucketName',
method: 'GET',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `QBox ${AccessToken}`
}
}
所以到底一次正常的接口请求是怎样的?
只看这部分代码,base64那里有一点问题,需要safe_base64编码,可以改下这里看看。