一、OpenClaw 公网访问报 control ui requires device identity 的场景还原把 OpenClaw 部署到云主机之后很多人第一反应是直接用公网 IP 加端口访问控制台结果浏览器迎面弹出一行报错control ui requires device identity (use HTTPS or localhost secure context)端口映射没问题、服务也在跑、防火墙也放行了但页面就是进不去。这个报错和模型通道、Token 额度、API Key 都没有关系它卡在浏览器这一层。OpenClaw 的控制台依赖 Web Crypto API 做设备身份校验而 Web Crypto 只在“安全上下文”里可用要么是https://localhost、https://127.0.0.1这类本地安全环境要么是带有效证书的 HTTPS 域名。你用http://公网IP:18789访问浏览器直接判定为非安全上下文设备身份拿不到控制台自然拒绝加载。所以这篇要拆成两条互不干扰的线第一条线是公网 HTTP 访问控制台的报错按 OpenClaw 官方配置改dangerouslyDisableDeviceAuth解决第二条线是 OpenClaw 跑 Agent 时消耗 Token 的模型通道如果你想让模型请求走 TaoToken就去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册并创建 Key把 Base URL 填成https://taotoken.net/api。TaoToken 只出现在模型 Key 和 Base URL 这一层它不替代dangerouslyDisableDeviceAuth也不参与控制台的设备身份校验。把这两件事混在一起是这类排障里最常见的误区。二、TaoToken 前置模型通道与控制台访问是两回事先把边界说清楚后面配置才不会互相污染。控制台访问这条线管的是“浏览器能不能打开 OpenClaw 的 Web UI”。它由gateway.controlUi下的安全策略决定和模型供应商、API Key、Base URL 完全无关。你就算把模型通道配得再顺公网 HTTP 访问该报control ui requires device identity还是照报。模型通道这条线管的是“OpenClaw 里的 Agent 发模型请求时请求打到哪个服务端”。默认它可能指向官方或其他供应商如果你希望统一走 TaoToken 的通道就需要在 OpenClaw 的模型配置里填 TaoToken 的 Base URL 和 Key。这一步的产物是一个能发通模型请求的通道而不是一个能打开的控制台。TaoToken 在这里的角色很单一提供模型请求的接入地址和 Key。它的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end注册后在控制台创建 Key模型通道的 Base URL 用https://taotoken.net/api。注意这个地址不带/v1也不加任何 UTM 参数填错路径会直接导致请求 404 或鉴权失败。如果你后续要长期跑编码类 Agent、需要更稳定的调用额度可以了解 Coding Plan如果只是先验证模型通道能不能通用模型对话页面测一次请求即可。这两者的入口都在官网导航里按需选择不要和公网访问的修复混为一谈。三、可复制配置先修控制台报错再配模型通道这一节给两份可直接复制的配置顺序建议先修控制台再配模型通道避免一边报错一边怀疑是 Key 的问题。3.1 修复 control ui requires device identity命令行方式在服务器终端执行# 1. 允许非安全认证解决跨域相关问题 openclaw config set gateway.controlUi.allowInsecureAuth true # 2. 关键步骤禁用设备身份验证允许 HTTP 公网访问 openclaw config set gateway.controlUi.dangerouslyDisableDeviceAuth true # 3. 重启网关服务使配置生效 openclaw gateway restart这三条命令对应的是控制台访问策略和模型通道无关。dangerouslyDisableDeviceAuth这个名字里的 dangerously 不是吓唬人它确实降低了安全门槛所以 Token 认证仍然要保留别顺手把 auth 也关了。3.2 修复 control ui requires device identity手动编辑配置文件如果你更习惯改文件编辑~/.openclaw/openclaw.json在gateway段里补上gateway: { port: 18789, bind: lan, controlUi: { allowInsecureAuth: true, dangerouslyDisableDeviceAuth: true, allowedOrigins: [ http://你的域名或IP:18789 ] }, auth: { mode: token, token: 你的复杂Token } }改完同样执行openclaw gateway restart。bind要确保是lan或0.0.0.0否则公网根本连不上那就不是设备身份的问题了。3.3 配置 TaoToken 模型通道控制台能打开之后再处理模型通道。在 OpenClaw 的模型配置里填入Base URL: https://taotoken.net/api API Key: YOUR_API_KEYKey 从 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册后创建具体创建入口在 API Keys 页面。Base URL 一定不要写成https://taotoken.net/api/v1也不要带任何查询参数。模型 ID 按你实际要用的填配置完成后 OpenClaw 发模型请求时就会走这条通道。四、验证请求与成功结果验证要分两步先确认控制台再确认模型通道别跳步。4.1 验证控制台访问先看服务状态openclaw gateway status确认服务监听在0.0.0.0:18789或对应网卡上。然后在浏览器访问http://你的公网IP或域名:18789/#token你的Token注意 URL 里的#token片段Token 不对会登录失败但不会再报control ui requires device identity。如果页面能正常加载出控制台界面说明设备身份这条线已经通了。再看日志确认没有安全上下文相关报错openclaw gateway logs4.2 验证 TaoToken 模型通道控制台能进之后让 OpenClaw 发一次真实的模型请求。可以在 Agent 对话里发一句简单指令观察是否正常返回。如果返回正常说明 Base URL 和 Key 都生效了。如果报鉴权错误优先检查 Key 是否复制完整、Base URL 是否误加了/v1。如果报连接超时检查服务器出网是否正常。这一步的成功标志是控制台能打开模型请求能返回两件事各自独立成立。五、本篇常见错排查错误一把模型通道问题当成控制台报错。有人看到control ui requires device identity就以为是 Key 没配好反复换 Key、改 Base URL结果报错纹丝不动。这个报错只和安全上下文有关和模型通道无关先按第三节改dangerouslyDisableDeviceAuth。错误二Base URL 多写了/v1。TaoToken 的接入地址是https://taotoken.net/api不带/v1。多写一段路径会导致请求打到不存在的端点表现为 404 或鉴权失败很容易被误判成 Key 无效。错误三改了配置没重启。无论是openclaw config set还是手动改openclaw.json都必须openclaw gateway restart才生效。只改不重启浏览器行为不会变。错误四以为禁用设备身份后 Token 就不需要了。dangerouslyDisableDeviceAuth只绕过设备身份校验auth.mode: token仍然生效Token 必须正确提供否则登录照样失败。错误五生产环境直接照搬。公网 HTTP 加禁用设备身份是应急方案长期跑建议上 Nginx 反向代理加 Lets Encrypt 证书恢复默认安全设置把dangerouslyDisableDeviceAuth设回false。错误六allowedOrigins 没配。手动改配置文件时如果漏了allowedOrigins跨域请求可能被拦表现为页面能开但接口报错记得把实际访问的域名或 IP 加进去。六、语义一致的收尾与入口回到最初的问题OpenClaw 公网访问报control ui requires device identity根因是浏览器安全上下文策略解法是配置gateway.controlUi.allowInsecureAuth和dangerouslyDisableDeviceAuth后重启网关。这条线到此闭环和模型通道没有交叉。模型通道这条线如果你要让 OpenClaw 的 Agent 请求走 TaoToken就去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册、创建 KeyBase URL 填https://taotoken.net/api。需要排障和接入细节的看 API Keys 页面和接入文档只想先验证模型能不能通的用模型对话页面发一次请求准备长期跑编码 Agent 的了解 Coding Plan 的额度方案。三条路径按你的实际阶段选不要只停在首页。把控制台访问和模型通道当成两件独立的事来处理这篇里的报错就不会再反复出现。