腾讯云签名 V3 认证
腾讯云签名 V3 是一种基于 HMAC-SHA256 算法的安全认证方式,适用于服务端环境下的云开发 HTTP API 调用。
概述
云开发 HTTP API 支持通过腾讯云签名方法 V3 进行认证并调用接口。
💡 注意:腾讯云签名方法 V3 详细规范请参考 腾讯云官方文档/签名方法V3
重要差异
在标准腾讯云签名方法 V3 中,规范请求串 CanonicalRequest 中的 CanonicalURI 字段固定为 /  
但在计算 云开发 HTTP API 签名时,需要根据实际请求路径填写 CanonicalURI
示例:请求 AI 大模型接口 /v1/ai/hunyuan/ 时,签名的 CanonicalURI 应为 /v1/ai/hunyuan/
签名生成步骤
1. 基础签名生成
按照腾讯云签名方法 V3 规范生成基础签名,格式如下:
TC3-HMAC-SHA256 Credential=*************/2024-08-08/tcb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=*************
2. 添加时间戳
将签名中使用的 Timestamp(即公共参数 X-Tc-Timestamp 值)拼接在签名串之后:
TC3-HMAC-SHA256 Credential=*************/2024-08-08/tcb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=*************, Timestamp=*******
3. 添加临时凭证(可选)
如使用临时访问凭证,需要将 Token(即 X-Tc-Token)拼接在签名串之后:
TC3-HMAC-SHA256 Credential=*************/2024-08-08/tcb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=*************, Timestamp=*******, Token=*************
💡 注意:临时访问凭证获取方式请参考 腾讯云临时凭证文档
使用示例
- cURL 示例
 - JavaScript 示例
 
curl 'https://${your-env}.api.tcloudbasegateway.com/${path}' \
  -H 'Authorization: TC3-HMAC-SHA256 Credential=*************/2024-08-08/tcb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=*************, Timestamp=*******, Token=*************' \
  -H 'Content-Type: application/json' \
  -d '{"key": "value"}'
const axios = require('axios');
const config = {
  method: 'post',
  url: 'https://your-env.api.tcloudbasegateway.com/your-path',
  headers: {
    'Authorization': 'TC3-HMAC-SHA256 Credential=*************/2024-08-08/tcb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=*************, Timestamp=*******',
    'Content-Type': 'application/json'
  },
  data: {
    key: 'value'
  }
};
try {
  const response = await axios(config);
  console.log(response.data);
} catch (error) {
  console.error('请求失败:', error.response?.data || error.message);
}
支持范围
不支持腾讯云签名 V3 认证的功能:
- 数据模型
 - 用户认证
 
对于不支持腾讯云签名 V3 的功能模块,可通过 AccessToken 认证 进行调用