OpenClaw Secure DM Pairing 机制解析与安全私信访问配置
在构建基于大语言模型(LLM)的聊天机器人(如 Telegram、WhatsApp Bot)时,如何控制访问权限是一个核心安全问题。直接开放访问可能导致 Token 滥用,而手动配置用户 ID 白名单又过于繁琐。
OpenClaw 提供了一套优雅的解决方案,称为 Secure DM Pairing(安全私信配对)。本文将深入解析该机制的运作流程、使用指令以及底层实现逻辑。本文基于 OpenClaw v2026.1.29 版本源码进行分析。
1. 什么是 Secure DM Pairing?
Secure DM Pairing 是 OpenClaw 网关默认的一种访问控制策略。
当未授权用户首次通过私信(Direct Message)联系机器人时,系统不会直接拒绝请求,而是拦截消息并生成一个临时的 8 位配对码(Pairing Code)。用户将此码发送给机器人管理员,管理员在服务器端通过 CLI 指令批准该码,即可完成用户身份的绑定与授权。
核心优势:
- 安全性:有效防止未经授权的 API 调用与 Token 滥用。
- 便捷性:无需管理员手动查找并录入冗长的平台用户 ID(如 Telegram User ID),通过简短的配对码即可完成鉴权。
- 交互性:用户能收到明确的系统反馈,清晰了解当前处于'待授权'状态。
2. 完整交互流程演示
以部署在 Telegram 平台的机器人为例,标准交互流程如下:
第一步:用户触发请求
陌生用户(UserA)向机器人发送私信,例如:'你好,我想使用服务。'
第二步:系统拦截与回复
OpenClaw 检测到 UserA 不在白名单中,且当前策略配置为 pairing。机器人将自动拦截消息并回复如下内容:
OpenClaw: access not configured.
Your Telegram user id: 773988xxxx
Pairing code: 2B9VQY42
Ask the bot owner to approve with:
openclaw pairing approve telegram 2B9VQY42
第三步:管理员批准
管理员在运行 OpenClaw Gateway 的服务器终端执行以下指令:
查看待处理请求(可选):
openclaw pairing list telegram
批准配对(核心指令):
openclaw pairing approve telegram 2B9VQY42
执行结果:
Approved telegram sender 773988xxxx.
此时,UserA 的 ID 将被正式写入系统白名单,后续发送的所有消息均会正常透传至 LLM 进行处理。
3. 核心代码实现解析
该机制的底层逻辑主要位于 bot-message-context.js 文件中。系统在处理每一条入站消息时,会优先校验 dmPolicy 配置。
核心逻辑片段(简化示意):
// 文件路径: dist/telegram/bot-message-context.js
if (!isGroup && !allowed) {
if (dmPolicy === ) {
}
}

