艺栈网 ArtStack.CN
认证与签名

请求头与签名算法

所有请求须携带以下四个请求头;签名用于防篡改与防重放。

请求头

X-Api-Key平台分配的 API Key
X-TimestampUnix 秒级时间戳
X-Nonce一次性随机串,防重放
X-SignatureHMAC-SHA256 签名值

签名算法

signature = HMAC-SHA256( method + path + sha256(body) + timestamp + nonce , api_secret )

示例代码

TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY='{"author":"某某","era":"当代·2025年"}'
BODYHASH=$(printf '%s' "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')
SIGN=$(printf '%s' "POST/api/v1/filing${BODYHASH}${TS}${NONCE}" \
  | openssl dgst -sha256 -hmac "$API_SECRET" -hex | awk '{print $2}')

curl -X POST https://api.artstack.cn/api/v1/filing \
  -H "X-Api-Key: $API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce: $NONCE" \
  -H "X-Signature: $SIGN" \
  -H "Content-Type: application/json" \
  -d "$BODY"
签名要点

拼接顺序与注意事项

拼接顺序

method + path + sha256(body) + timestamp + nonce,各段无分隔符直接拼接。

时间戳

使用 Unix 秒级时间戳;与服务端时差过大将返回 TIMESTAMP_EXPIRED。

Nonce 防重放

每次请求使用一次性随机串,重复 Nonce 将被拒绝。

演示环境中的 Key(ak_demo_xxx / sk_demo_xxx)为示意值,非真实可用凭据。