参考
Dashboard 的 SecretRef token、sessionStorage 和非 token 化 URL 应该怎么理解
基于最新官方 Dashboard 文档,解释 openclaw dashboard 在普通 token、SecretRef token 和远程入口下分别如何引导认证,以及为什么当前浏览器标签页的 sessionStorage 行为很关键。
AI 摘要
这页重点
基于最新官方 Dashboard 文档,解释 openclaw dashboard 在普通 token、SecretRef token 和远程入口下分别如何引导认证,以及为什么当前浏览器标签页的 sessionStorage 行为很关键。
参考
dashboard / token / secretref / sessionStorage / auth
最后更新 2026-03-26,来源 OpenClaw Docs
Dashboard 的 SecretRef token、sessionStorage 和非 token 化 URL 应该怎么理解
官方最近的 Dashboard 文档把 token bootstrap 这条线补得更细之后,中文用户现在更容易看清一个经常被混淆的点:
- Dashboard 能不能顺利打开
不只是“有没有 token”,还取决于:
- token 是普通值还是 SecretRef
- 浏览器当前 tab 是否已保存认证
- 你打开的是本地还是远程入口
先记住 openclaw dashboard 在做什么
它不只是“帮你打开浏览器”,而是在尽量给你一条:
- 更安全
- 更少泄漏
- 更适合当前环境
的 Dashboard 进入路径。
这也是为什么官方最近对它的行为写得更细。
普通 token 模式下会发生什么
如果 gateway.auth.token 是普通可解析值,openclaw dashboard 可以帮助完成:
- 打开 Dashboard
- 引导当前浏览器 tab 建立认证
官方文档现在明确提到:
- 认证值会保存在当前浏览器 tab 的
sessionStorage - 页面加载后会把 URL fragment 里的 token 去掉
这意味着:
- 认证更偏当前标签页会话级,而不是长期本地持久化
- 地址栏不会长期裸露 token
SecretRef token 为什么会故意打印非 token 化 URL
这是最近最值得单独记住的一条边界。
当前官方文档明确说明:
- 如果
gateway.auth.token是 SecretRef 管理的 openclaw dashboard会故意输出 non-tokenized URL
这样做的目的不是“它不会用了”,而是为了避免把外部管理的敏感 token 暴露到:
- shell 历史
- 剪贴板历史
- 浏览器启动参数
也就是说,它是刻意的最小暴露设计。
SecretRef 未解析时为什么也还能继续引导
官方现在还补了一条很实用的行为:
- 即使当前 shell 里 SecretRef 还没解析
openclaw dashboard仍然会给出 non-tokenized URL 和下一步 auth 提示
这意味着它的目标不只是“打开成功”,而是:
- 在无法安全直传 token 时,也尽量把你带到正确修复路径
sessionStorage 为什么值得单独看
很多人会下意识以为 Dashboard token 会像普通网页登录那样长期放在 localStorage。
但官方当前写法更像在强调:
- 认证状态更适合绑定到当前浏览器 tab 和当前 gateway URL
这会带来几个直接结果:
- 换 tab 可能需要重新建立认证
- 换 gateway URL 不应自动复用旧认证
- 更不适合把 Dashboard 当普通长期登录站点来理解
本地和远程入口的差别到底在哪
更稳的区分是:
localhost
更适合:
- 直接
openclaw dashboard - 让 CLI 帮你走本机最快的认证路径
远程入口
更适合:
- 先确认走的是 SSH tunnel、Tailscale Serve,还是显式远程 bind
- 再判断 token 是否应手动输入
尤其在 SecretRef 场景下,更不能期待远程 URL 自动带着完整 token 出现在地址栏里。
中文环境里最容易踩的坑
1. 把 non-tokenized URL 当成 CLI 失效
如果你在用 SecretRef,这往往是官方刻意的保护行为。
2. 以为认证会长期保存在浏览器里
当前官方更偏当前 tab 会话级保存。
3. 远程入口还期待“一次复制链接,到处都能复用”
这和当前 Dashboard 的最小暴露心智并不一致。
一条更稳的理解顺序
建议按这个顺序判断:
- 当前 token 是普通值还是 SecretRef
- 当前是 localhost 还是远程入口
- 当前浏览器 tab 是否已经保存 auth
- 如果没有,再决定是重新跑
openclaw dashboard还是手动补 token