【OpenClaw】揭秘 Secure DM Pairing:如何为你的 AI 机器人构建安全私信访问机制

【OpenClaw】揭秘 Secure DM Pairing:如何为你的 AI 机器人构建安全私信访问机制

在构建基于 LLM 的聊天机器人(如 Telegram、WhatsApp Bot)时,如何控制谁能与机器人对话是一个核心安全问题。直接开放访问可能导致 Token 滥用,而手动配置白名单又过于繁琐。

OpenClaw 提供了一套优雅的解决方案,称为 “Secure DM Pairing” (安全私信配对)。本文将深入解析这套机制的运作流程、使用指令以及底层的代码实现。
注意本文基于 OpenClaw v2026.1.29 版本源码分析。


1. 什么是 Secure DM Pairing?

Secure DM Pairing 是 OpenClaw 网关默认的一种访问控制策略。

当一个未授权的用户首次通过私信(Direct Message)联系机器人时,系统不会直接拒绝,而是拦截消息并生成一个临时的 8位配对码 (Pairing Code)。用户将此码发送给机器人管理员,管理员在服务器端通过 CLI 指令“批准”该码,从而完成用户身份的绑定与授权。

核心优势:

  • 安全性:防止未经授权的 API 调用。
  • 便捷性:无需管理员手动查找用户的长 ID(如 Telegram User ID),通过简短的配对码即可完成鉴权。
  • 交互性:用户能得到明确的反馈,知道系统处于“待授权”状态。

2. 完整交互流程演示

假设你的机器人部署在 Telegram 上,流程如下:

第一步:用户触发 (User Action)

陌生用户(UserA)向机器人发送消息:“你好,我想使用服务。”

第二步:系统拦截与回复 (System Response)

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

第三步:管理员批准 (Admin Action)

管理员在运行 OpenClaw Gateway 的服务器终端执行以下指令:

查看待处理请求(可选):

openclaw pairing list telegram 

批准配对(核心指令):

openclaw pairing approve telegram 2B9VQY42 

执行结果:

Approved telegram sender 773988xxxx. 

此时,UserA 的 ID 被正式写入系统的白名单,之后的所有消息都将正常透传给 LLM 处理。


3. 核心代码实现解析

这套机制是如何通过代码实现的?我们可以从 OpenClaw 的源码中一探究竟。

3.1 消息拦截与逻辑判断

核心逻辑位于 bot-message-context.js 中。系统在处理每一条入站消息时,会检查 dmPolicy

代码位置dist/telegram/bot-message-context.js

// 伪代码摘要if(!isGroup &&!allowed){ if(dmPolicy ==="pairing")

Read more

Git 如何修改已有的分支名称

Git 如何修改已有的分支名称 * 作者:吴思含(Witheart) * 更新时间:20250117 修改本地分支名称 重命名分支 使用以下命令重命名分支: git branch -m <旧分支名><新分支名> 或者,如果你当前不在该分支上,可以直接用: git branch -m <新分支名> 示例: 如果你想把 old-branch-name 改为 new-branch-name,可以执行: git branch -m old-branch-name new-branch-name 如果你当前就在 old-branch-name 上,只需: git branch -m new-branch-name 修改远程分支名称 重命名本地分支后,还需要同步到远程仓库,

By Ne0inhk
OpenClaw-In-Docker安全、独立、便捷的OpenClaw部署运行方案,已在Github开源

OpenClaw-In-Docker安全、独立、便捷的OpenClaw部署运行方案,已在Github开源

OpenClaw In Docker 提供一个类似虚拟机的环境,一键运行 OpenClaw 服务,并提供安全的用户登录与 HTTPS 访问 OpenClaw 能力,使其可以便捷、安全的运行开放在互联网上。 Github 地址: https://github.com/cncfstack/openclaw-in-docker OpenClaw In Docker 特点: * 运行在一个类虚拟机的隔离容器中:这个类虚拟机基于 csvm 项目,提供 systemd 系统服务。 * 用户登录功能:基于OpenResty+Lua提供用户登录认证功能,用户登录成功后才能访问 OpenClaw 页面。 * 提供安全的 HTTPS 访问能力:必须使用HTTPS访问,默认使用 OpenSSL 自签证书。 * 容器启动默认运行基础服务:openclaw、openrestry、docker、cron、

By Ne0inhk
GitFlow 工作流完整命令手册

GitFlow 工作流完整命令手册

GitFlow 是一套标准化的 Git 分支管理流程,核心围绕 master(生产分支)、develop(开发分支)、feature(功能分支)、release(发布分支)、hotfix(紧急修复分支)五类分支展开。 具体工作流详情见:Git之GitFlow工作流 | Gitflow Workflow(万字整理,已是最详) 以下是从仓库初始化到生产发布的全流程命令,无冗余文字,直接复制可用。 一、初始化:仓库与分支准备 1. 本地初始化仓库(全新项目) # 创建项目目录并进入mkdir project-name &&cd project-name # 初始化Git仓库git init # 关联远程仓库(替换为你的远程地址)git remote add origin [email protected]:xxx/project-name.

By Ne0inhk

解决git clone报错Permission denied (publickey). fatal Could not read from remote repository

解决git clone报错Permission denied (publickey). fatal: Could not read from remote repository. 这个错误提示: [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. 说明你当前在用 SSH 方式通过 [email protected]:Learning-in-robotics/kinova_learning.git 去 clone,但 GitHub 拒绝了你的 SSH 公钥认证。也就是说,你的本地机器并没有配置好能让 GitHub 接受的 SSH 公钥,或者配置有误。 详细解决步骤

By Ne0inhk