正在读取本地身份…
开始使用
把这台浏览器接入你的多设备工作区
首次使用请用部署令牌初始化工作区;已有工作区请使用其他设备创建的一次性邀请码加入。 本页通过同源 HttpOnly Cookie 记住浏览器会话,JS 不保存任何长期凭据(deviceSecret / accessToken / refreshToken)。
同源入口
浏览器认证使用同源 HttpOnly Cookie:页面与 /v1 API 必须由同一域名与端口提供。
生产环境由 Caddy 同源托管本页并反代 /v1/*;本地联调请使用包含静态页面与 API 的同源代理。
- 当前页面 Origin
- —
- 会话 Cookie
wc_session(HttpOnly; SameSite=Strict)- CSRF
wc_csrf可读 → 写请求头X-CSRF-Token
使用服务端启动时设置的一次性部署令牌(DEPLOYMENT_TOKEN)创建自己的工作区与 Owner
设备。请求以 mode:"browser" 提交:成功后服务端直接下发 HttpOnly Cookie 会话,
响应不会返回 deviceSecret/accessToken/refreshToken。令牌用后作废,公开注册默认关闭。
输入已有设备创建的邀请码(单次、短期有效)。提交后把下方显示的“入组请求 ID”交给已加入的设备人工批准,
本页面会自动轮询并以 mode:"browser" 领取 HttpOnly Cookie 会话(JS 不接触长期凭据)。
高级说明:同源 Cookie、CSRF 与安全边界
- 浏览器会话只存在于服务端下发的 HttpOnly Cookie(
wc_session);JS 读不到、也不保存长期凭据。 - 所有写请求(含 WebSocket ticket)使用可读的
wc_csrfCookie 以 double-submit 方式注入X-CSRF-Token,并由服务端校验 Origin 同源。 - 不同域名/端口不共享本 Cookie;换入口访问需要在该入口重新配对(原生 Bearer 不受影响)。
- 本地 http 回环仅用于联调(服务端按请求协议决定 Cookie 是否 Secure);生产必须 HTTPS/WSS,由 Caddy 注入
X-Forwarded-Proto: https且服务端TRUST_PROXY=true。 - 清空站点数据或退出登录会撤销浏览器会话并删除本地身份/outbox/inbox;已接收的数据无法远程收回。
- 同一设备多标签页会由服务端连接 epoch 仲裁,旧标签页会收到接管提示。
消息时间线
ACK 语义分开:accepted=服务端已持久化(不代表对方收到); received=接收方已持久化 inbox;applied=接收方业务终态 (resultCode=MESSAGE_EXPIRED 时显示「已跳过(过期)」,不是执行成功)。
还没有消息。发送一条或等待其他设备发来消息。
发送消息
文件传输(M4 · 同源 Cookie + CSRF)
服务端未启用发送前增量计算 SHA-256,服务端整文件 hash 校验;接收必须用户显式「接受」(默认不自动接受), 下载后再次校验 hash。无 File System Access 时内存 Blob 下载上限 512 MiB,大文件会明确提示。
P2P 直连(M3 · WebRTC DataChannel)
服务端未启用只用于诊断型 DataChannel echo;durable 业务消息仍走既有 WSS/HTTPS 中继。 无 TURN 时仅直连/局域网候选,公网 NAT 下可能失败并自动回退中继,不声称 P2P 可用。