阿里雲認證簽名生成


前言

使用阿里雲產品,調用API接口一般有兩種方式,使用APPCODE或使用ak、sk生成認證簽名。
第二種比較復雜,今天記錄一下。

代碼

  1. 調用阿里雲接口,需要在headers中添加簽名(X-Ca-Signature字段)
  2. 以whois查詢接口為例 (http://whois.market.alicloudapi.com/icredit_ai_seo/whois/v1)
  3. 阿里雲生成認證字符串文檔
  4. 以nodejs為例
const AppKey = 'your AK';
const AppSecret = 'your SK';
const domainName = 'your domain name';

const apiUrl = `http://whois.market.alicloudapi.com/icredit_ai_seo/whois/v1?STRING=${domainName}`;

const headers = {
        'Accept': 'application/json',
        'X-Ca-Key': AppKey,
        'X-Ca-Signature': getALYSignature(domainName, AppSecret, '/icredit_ai_seo/whois/v1')
    };
// path 除根路徑以外的其它部分
function getALYSignature(domainName, AppSecret, path) {
    let StringToSign = 'GET' + '\n' + 'application/json' + '\n' + '\n' + '\n' + '\n' + path + '?STRING=' + domainName;
    return crypto
        .createHmac('sha256', AppSecret)
        .update(StringToSign)
        .digest()
        .toString('base64'); // 這里使用base64 不是hex
}

總結

  1. 使用阿里雲的whois接口時,有的域名查詢需要加www.才可以查詢,有的不需要(規律我也找不到)。
  2. 通常返回結果為空時,都是查詢出錯了。錯誤代碼一般都在返回的headers中,對照官方文檔查看即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM