Skip to content

身份认证

了解如何使用 Browserman 的 API 和 MCP 服务进行身份验证。

API 密钥认证

Browserman 使用 API 密钥进行身份验证。API 密钥与你的账号关联,授予对 API 的访问权限。

获取 API 密钥

  1. 访问 app.browserman.run 并登录
  2. 在左侧边栏点击 API 密钥
  3. 点击右上角的 + 新建密钥按钮
  4. 为你的密钥输入描述性名称:
    • 示例:"生产 API"、"开发"、"CI/CD 流水线"、"我的项目"
    • 选择一个有助于识别此密钥用途的名称
  5. 点击创建密钥
  6. 重要:立即复制密钥并安全存储
    • 出于安全原因,密钥只显示一次
    • 如果丢失,你需要创建新密钥
  7. 密钥将出现在你的密钥列表中,包含:
    • 密钥名称
    • 掩码的密钥值(例如 sk_live_xxxx...xxxx
    • 创建日期
    • 最后使用日期
    • 状态(活跃/已撤销)

保护你的 API 密钥

你的 API 密钥授予对 Browserman 账号的完全访问权限。永远不要分享它,不要提交到版本控制,也不要在客户端代码中暴露它。

使用 API 密钥

在每个请求的 Authorization 头中包含你的 API 密钥:

bash
curl https://api.browserman.run/api/platforms \
  -H "Authorization: Bearer YOUR_API_KEY"

JavaScript:

javascript
const response = await fetch('https://api.browserman.run/api/platforms', {
  headers: {
    'Authorization': `Bearer ${API_KEY}`
  }
});

Python:

python
import requests

response = requests.get(
    'https://api.browserman.run/api/platforms',
    headers={'Authorization': f'Bearer {API_KEY}'}
)

MCP 认证

对于模型上下文协议(MCP)集成,在 MCP 客户端中配置你的 API 密钥。

Claude Desktop

编辑你的配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "browserman": {
      "url": "https://mcp.browserman.run",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

安全最佳实践

1. 永远不要提交 API 密钥

不好:

javascript
// ❌ 永远不要这样做
const API_KEY = 'sk_live_abc123def456';

好:

javascript
// ✅ 使用环境变量
const API_KEY = process.env.BROWSERMAN_API_KEY;

2. 使用环境变量

Node.js:

bash
export BROWSERMAN_API_KEY=sk_live_abc123def456
javascript
require('dotenv').config();
const API_KEY = process.env.BROWSERMAN_API_KEY;

Python:

bash
export BROWSERMAN_API_KEY=sk_live_abc123def456
python
import os
API_KEY = os.environ.get('BROWSERMAN_API_KEY')

3. 定期轮换密钥

设置轮换 API 密钥的时间表:

  • 生产密钥:每 90 天
  • 开发密钥:每 180 天
  • 如果泄露:立即

轮换流程:

  1. 生成新的 API 密钥
  2. 使用新密钥更新应用程序
  3. 监控问题
  4. 24 小时后撤销旧密钥

4. 为不同环境使用单独的密钥

bash
# 开发
BROWSERMAN_API_KEY=sk_dev_xyz789

# 预发布
BROWSERMAN_API_KEY=sk_staging_abc123

# 生产
BROWSERMAN_API_KEY=sk_live_def456

5. 监控 API 密钥使用情况

定期查看 API 密钥活动:

  1. 前往 设置 > API 密钥
  2. 检查最后使用时间戳
  3. 查看请求计数
  4. 撤销未使用的密钥

管理 API 密钥

列出你的密钥

在控制台查看所有 API 密钥:

  1. 前往设置 > API 密钥
  2. 查看所有活跃密钥及其:
    • 名称
    • 创建日期
    • 最后使用日期
    • 请求计数
    • 状态

撤销密钥

要撤销 API 密钥:

  1. 前往设置 > API 密钥
  2. 找到要撤销的密钥
  3. 点击撤销删除
  4. 确认操作

注意:撤销密钥是立即生效且不可撤销的。使用此密钥的任何应用程序将立即停止工作。

速率限制

API 密钥根据你的计划受速率限制:

免费计划

  • 每小时 100 个请求
  • 每天 1,000 个请求
  • 每月 10,000 个请求

专业计划

  • 每小时 1,000 个请求
  • 每天 10,000 个请求
  • 每月 100,000 个请求

企业计划

  • 自定义限制
  • 专属支持
  • SLA 保证

速率限制头

在响应头中检查速率限制状态:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 995
X-RateLimit-Reset: 1642248000

JavaScript 示例:

javascript
const response = await fetch('https://api.browserman.run/api/platforms', {
  headers: { 'Authorization': `Bearer ${API_KEY}` }
});

const remaining = response.headers.get('X-RateLimit-Remaining');
const reset = response.headers.get('X-RateLimit-Reset');

console.log(`剩余请求:${remaining}`);
console.log(`重置时间:${new Date(reset * 1000)}`);

故障排除

无效的 API 密钥

错误:

json
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid API key"
  }
}

解决方案:

  1. 验证密钥是否正确
  2. 检查额外的空格或字符
  3. 确保密钥未被撤销
  4. 如需要生成新密钥

速率受限

错误:

json
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests. Try again in 3600 seconds."
  }
}

解决方案:

  1. 等待速率限制重置
  2. 实施请求节流
  3. 升级到更高计划
  4. 联系支持请求临时增加

安全检查清单

部署到生产环境前:

  • [ ] API 密钥存储在环境变量中
  • [ ] 为开发/预发布/生产环境设置单独的密钥
  • [ ] 密钥永远不会提交到版本控制
  • [ ] 实施速率限制处理
  • [ ] 设置监控和告警
  • [ ] 记录密钥轮换流程
  • [ ] 撤销任何未使用或测试密钥
  • [ ] 配置最小所需权限
  • [ ] 在账号上启用两步验证
  • [ ] 查看并理解安全政策

下一步