LAPLACE Login Sync
同步登录状态的基础设施
Intro
用于同步登录状态的核心基础设施,基于 CookieCloud 修改而来,前端简化了界面,后端基于 Hono + Bun 提供了翻倍的并发性能
其修改版遵循 GPL-3.0 协议,代码已完全开源:
浏览器扩展安装方法
请访问 LAPLACE Live! 查看
安全与隐私
- 本功能会通过浏览器扩展将您本地的哔哩哔哩登录状态(cookies)加密并同步至云端服务器,同步的数据采用端到端 AES 加密,本站不会也无法解密您同步至云端的内容。本站会尽最大可能保障用户上传数据的安全,但无法保证不存在未知漏洞,如发现漏洞,本站会第一时间进行公示。但本站不会对因为漏洞或其他不可抗力造成的登录状态泄漏导致的任何经济损失进行赔偿。如果您不信任此功能,请勿使用
- 由于 Chromium 与 Firefox 的 cookie 格式并不一致,加上 OBS CEF 的限制,您无法通过 Firefox 浏览器进行同步
- 请勿将同步密钥分享给陌生人,如意外泄漏,请按照下列步骤操作:
- 在浏览器中,立即登出用于同步登录的哔哩哔哩账号
- 打开 LAPLACE Login Sync 扩展应用,点击「保存并同步」——将未同步的登录状态同步至服务器,此时您在本站的同步状态会立即失效
- 点击「重置」,然后再次点击「保存并同步」——此时会弃用之前的同步密钥,并生成新的同步密钥
- 重新登录哔哩哔哩
- 再次打开 LAPLACE Login Sync 扩展应用,点击「保存并同步」
- 使用新的同步密钥替换之前的同步密钥
使用第三方浏览器扩展进行同步
在 LAPLACE Chat 中,如果您不信任本站的同步服务器。可采用自建服务器的方案。本站同步服务器基于 CookieCloud,您可以自行搭建同步服务器,并使用 CookieCloud 的官方浏览器扩展。具体方法如下
- 访问 CookieCloud 项目,根据项目的说明自行搭建 CookieCloud 服务器,请注意,您的 CookieCloud 服务器必须提供有效的 HTTPS 连接,并且可以通过公网正常访问
- 安装 CookieCloud 浏览器扩展程序
- 在 CookieCloud 浏览器扩展程序中,输入您自行搭建的服务器地址
- 生成用户 key 和端到端密码,同步时间选择 5 分钟;域名关键词输入
bilibili.com
;同步 Local Storage 选择否,其他选项不变 - 保存并点击「手动同步」
- 返回到本站配置器,以
用户 key
+@
+端到端密码
拼接的形式将其拼在一起,并粘贴到同步密钥一栏 - 在 LAPLACE Chat 配置器中输入您自己的 CookieCloud 服务器地址
- 请注意,当您使用自行搭建的服务器时,所有服务器安全相关问题将全权由您自行负责。本站不会也无法提供任何技术支持
Login Sync Server Self-Hosted
如果您想自行搭建 Login Sync Server,您需要如下前提条件:
- 熟悉 Linux 基本操作
- 熟悉 Docker 基本用法以及 Docker Compose 基本语法
- 一台可以在公网访问的服务器,并且拥有有效的 HTTPS 证书
然后您可以参考下列 Docker Compose 配置:
laplace-login-sync:
image: ghcr.io/laplace-live/laplace-login-sync-server:latest
restart: always
volumes:
- laplace-login-sync-vol:/app/data
当您使用自定义服务器时,您无法通过本站官方的扩展进行同步,请使用上方的 CookieCloud 浏览器扩展进行同步。
Server Benchmarks
The new server delivers a roughly 40% increase in performance. Tested on the Apple M2 Max.
(index) | Task Name | ops/sec | Average Time (ns) | Margin | Samples |
---|---|---|---|---|---|
0 | bun-hono | 5,206 | 192054.40348383566 | ±1.12% | 52069 |
1 | bun-express | 4,180 | 239192.77248372967 | ±0.83% | 41808 |
2 | node-express | 3,612 | 276843.9688278622 | ±0.84% | 36122 |
Crypto Benchmarks
Tested on the Apple M4 Max with bun 1.2.12 and node 22.14.0
Task name | Latency avg (ns) | Latency med (ns) | Throughput avg (ops/s) | Throughput med (ops/s) | Samples | |
---|---|---|---|---|---|---|
0 | bun-md5 | 792.34 ± 0.29% | 709.00 ± 41.00 | 1364597 ± 0.02% | 1410437 ± 77104 | 1262080 |
1 | bun-sha1 | 504.96 ± 0.35% | 458.00 ± 41.00 | 2238279 ± 0.02% | 2183406 ± 214675 | 1980338 |
2 | bun-sha256 | 545.81 ± 0.59% | 459.00 ± 1.00 | 2079642 ± 0.02% | 2178649 ± 4757 | 1832233 |
3 | cryptojs-md5 | 6459.3 ± 0.26% | 6083.0 ± 208.00 | 160191 ± 0.06% | 164393 ± 5435 | 154816 |
4 | cryptojs-sha1 | 5042.3 ± 0.24% | 4750.0 ± 166.00 | 204651 ± 0.05% | 210526 ± 7150 | 198323 |
5 | cryptojs-sha256 | 4511.0 ± 0.28% | 4209.0 ± 166.00 | 230339 ± 0.05% | 237586 ± 9015 | 221681 |
6 | cryptojs-encrypt-aes | 12853 ± 0.33% | 12083 ± 458.00 | 80201 ± 0.08% | 82761 ± 3029 | 77803 |
7 | cryptojs-decrypt-aes | 11860 ± 0.28% | 11208 ± 375.00 | 86668 ± 0.08% | 89222 ± 2896 | 84319 |
8 | crypto-sha1 | 10681 ± 1.00% | 9125.0 ± 875.00 | 103418 ± 0.13% | 109589 ± 11009 | 93629 |
9 | crypto-sha256 | 10467 ± 0.63% | 9208.0 ± 626.00 | 102776 ± 0.11% | 108601 ± 7908 | 95535 |
10 | crypto-encrypt-aes | 2701.9 ± 3.69% | 2042.0 ± 126.00 | 454319 ± 0.07% | 489716 ± 32205 | 370104 |
11 | crypto-decrypt-aes | 2380.6 ± 4.99% | 1708.0 ± 125.00 | 542888 ± 0.07% | 585480 ± 45833 | 420069 |
12 | bun-md5-hmac | 1052.1 ± 0.22% | 1000.0 ± 41.00 | 998763 ± 0.02% | 1000000 ± 42753 | 950460 |
13 | bun-sha1-hmac | 590.91 ± 0.61% | 542.00 ± 1.00 | 1785374 ± 0.02% | 1845018 ± 3410 | 1692314 |
14 | bun-sha256-hmac | 609.30 ± 0.19% | 583.00 ± 41.00 | 1709654 ± 0.02% | 1715266 ± 115266 | 1641215 |
15 | crypto-md5-hmac | 1128.3 ± 2.97% | 1000.0 ± 41.00 | 953015 ± 0.03% | 1000000 ± 40307 | 886255 |
16 | crypto-sha1-hmac | 732.45 ± 5.93% | 625.00 ± 42.00 | 1556967 ± 0.03% | 1600000 ± 115266 | 1365274 |
17 | crypto-sha256-hmac | 716.45 ± 4.83% | 584.00 ± 41.00 | 1576307 ± 0.03% | 1712329 ± 112329 | 1395786 |