Skip to content
广告 · 本站推荐广告

认证

Gateway 支持多种认证(Authentication)方式来保护访问安全。所有客户端必须在建立连接时完成身份验证。

认证方式

Token 认证

推荐的认证方式。通过环境变量 OPENCLAW_GATEWAY_TOKEN 设置 Token。

bash
# 设置 Gateway Token
export OPENCLAW_GATEWAY_TOKEN="your-secret-token-here"

# 启动 Gateway
openclaw gateway

安全建议

Token 应至少 32 个字符,包含字母、数字和特殊字符。避免在命令行历史中暴露 Token。

密码认证

适用于交互式场景,支持密码(Password)认证:

bash
# 设置密码
openclaw config set gateway.password "your-password"

密码 vs Token

密码认证便于人工操作,但 Token 认证更适合程序化集成。生产环境建议使用 Token 认证。

连接认证协议

首帧 connect 协议

客户端建立 WebSocket 连接后,必须在第一帧发送 connect 消息完成认证:

json
{
  "type": "connect",
  "token": "your-gateway-token",
  "clientId": "device-unique-id",
  "clientName": "My Laptop",
  "version": "1.0"
}

hello-ok 响应

认证成功后,Gateway 返回 hello-ok

json
{
  "type": "hello-ok",
  "sessionId": "sess_abc123",
  "gatewayVersion": "0.5.0",
  "capabilities": ["streaming", "tools", "multi-model"]
}

认证失败

认证失败时,Gateway 返回 unauthorized 并关闭连接:

json
{
  "type": "unauthorized",
  "reason": "invalid_token",
  "message": "The provided token is invalid or expired."
}

安全机制

连续认证失败会触发速率限制(Rate Limiting)。默认 5 次失败后锁定 IP 60 秒。

设备配对

设备配对(Device Pairing)允许新设备安全地接入 Gateway。

配对流程

text
1. 新设备发送配对请求
   Client ──▶ Gateway: { "type": "pair-request", "deviceName": "iPhone" }

2. Gateway 生成配对码并通知已授权设备
   Gateway ──▶ Authorized Device: "新设备 iPhone 请求配对,配对码: 847291"

3. 用户在已授权设备上确认
   Authorized Device ──▶ Gateway: { "type": "pair-approve", "code": "847291" }

4. Gateway 向新设备颁发 Token
   Gateway ──▶ Client: { "type": "pair-ok", "token": "device-token-xxx" }

CLI 配对命令

bash
# 发起配对(在新设备上)
openclaw pair

# 查看待配对请求(在已授权设备上)
openclaw pair list

# 批准配对
openclaw pair approve <device-id>

# 拒绝配对
openclaw pair reject <device-id>

多设备管理

管理已授权设备:

bash
# 列出所有已授权设备
openclaw devices list

输出示例:

text
ID          Name           Last Seen         Status
dev_001     MacBook Pro    2 minutes ago     online
dev_002     iPhone 15      1 hour ago        offline
dev_003     Linux Server   5 minutes ago     online
bash
# 撤销设备授权
openclaw devices revoke <device-id>

# 撤销所有设备(除当前设备外)
openclaw devices revoke-all

撤销即时生效

撤销设备授权后,该设备的所有活跃连接将立即断开。

认证配置

在配置文件中调整认证行为:

json5
{
  "gateway": {
    "auth": {
      "method": "token",        // "token" | "password" | "both"
      "rateLimitAttempts": 5,   // 最大失败尝试次数
      "rateLimitWindow": 60,    // 锁定时间(秒)
      "sessionTimeout": 86400   // 会话超时(秒)
    }
  }
}

安全最佳实践

  1. 使用强 Token — 至少 32 字符,随机生成
  2. 定期轮换 — 建议每 90 天更换 Token
  3. 最小权限 — 每台设备使用独立 Token
  4. 监控访问 — 定期审查已授权设备列表
  5. 启用 HTTPS — 远程访问时务必启用 TLS 加密

相关文档

基于MIT协议开源 | 内容翻译自 官方文档,同步更新