SecureCloud
文档

POW 验证接入文档

将 Proof of Work 验证集成到您的网站,有效防止机器人和恶意请求

快速开始
三步完成 POW 验证集成
1

获取密钥

在控制台创建应用,获取 Site Key 和 Secret Key

2

前端集成

在页面中添加 POW 验证组件,获取验证 token

3

后端验证

在服务器端使用 Secret Key 验证 token 有效性

API 接口
POW 验证相关 API 端点
GET/api/v1/pow/challenge

获取 POW 挑战。参数: site_key (必须),该请求应由浏览器前端发起,浏览器会自动携带Origin

// 响应示例
{
  "status": "success",
  "data": {
    "id": "challenge-uuid",
    "prefix": "random-prefix-string",
    "difficulty": 20,
    "timestamp": 1704067200,
    "ttl": 60
  }
}
POST/api/v1/pow/challenge

提交解决方案,获取验证 token

// 请求体
{ "id": "challenge-uuid", "nonce": "12345" }

// 响应示例
{
  "status": "success",
  "data": { "token": "550e8400-e29b-41d4-a716-446655440000" }
}
POST/api/v1/pow/verify

后端验证 token (需要 Secret Key)


// 请求体
{ 
  "secret_key": "123",
  "token": "550e8400-e29b-41d4-a716-446655440000" 
}

// 响应示例
{
  "status": "success",
  "data": { valid: true }
}
控制台私有接口(需要 JWT Bearer)
  • GET /api/v1/pow/apps:获取应用列表
  • POST /api/v1/pow/app:创建应用
  • POST /api/v1/pow/app/reset_secret_key:重置 Secret Key
  • PUT /api/v1/pow/app/update:更新应用配置与自动续费
  • GET /api/v1/pow/resources:获取资源列表(用于新建应用时选择 resource_id)
  • GET /api/v1/pow/count:查询每日统计
  • GET /api/v1/pow/plans:获取套餐列表
代码示例
各种集成方式的代码示例

最简单的集成方式,只需添加几行 HTML 代码

<!-- SecureCloud POW Widget -->
<div id="securecloud-pow"></div>
<script src="https://dash.moe.gift/pow-widget.js"></script>
<script>
  SecureCloudPOW.init({
    siteKey: 'YOUR_SITE_KEY',
    apiBaseUrl: 'https://api.moe.gift/api/v1',
    container: '#securecloud-pow',
    onSuccess: function(token) {
      // 将 token 发送到您的服务器验证,不要把 token 输出到日志
      submitPowToken(token);
    },
    onError: function(error) {
      console.error('POW Error:', error);
    }
  });
</script>
安全注意事项
  • Site Key 是公开的,可以在前端代码中使用
  • Secret Key 必须保密,只能在服务器端使用
  • 每个 token 只能验证一次,防止重放攻击
  • 挑战有 TTL 限制,过期后需要重新获取
  • 配置 allowed_domains 限制请求来源

有问题?查看我们的 POW 演示或联系技术支持