refactor: 个人自用,移除登录与云同步全链路

站点只给本人用,云乐坊 SSO 授权、收藏/历史云同步、获客归因和账号切换记账都没有收益,却被登录状态检查和同步失败提示持续打扰。

- 删除 useYunlefunAuth / yunlefunAuth / yunlefunSsoConfig / yunlefunAuth 适配器、useUserDataSync / userDataSync / userData 适配器、三个 client 插件与 /auth/callback 回调页
- 抽出 adapters/cloudbase.ts,让「反馈一下」和匿名筛选信号不再依赖登录态;cook-feedback 云函数保留
- 删除 cook-user-data 云函数与 cook_user_data 权限规则,移除 @yunlefun/sso 依赖
- 「我的」页删掉登录按钮、账号卡、四个统计格和退出登录;「关于」页删掉项目作者、致谢名单和上游宣传链接
- 本地收藏/历史与导出导入保留,删除同步专用的 lastUid 记账

取舍见 docs/decisions/0005-drop-login-and-sync.md
This commit is contained in:
toor
2026-10-22 15:52:54 +08:00
committed by trae-solo-agent
parent 7408591fac
commit 8ff7b879b9
54 changed files with 214 additions and 3049 deletions
+8 -12
View File
@@ -1,6 +1,6 @@
# Web 应用
Cook 只保留 Web 一套代码,服务普通浏览器和云乐坊容器。技术栈:
Cook 只保留 Web 一套代码。技术栈:
- [Nuxt 4](https://nuxt.com/)(Vue 3,CSR-only,静态生成)
- [Ionic](https://ionicframework.com/) + [Nuxt Ionic](https://ionic.nuxtjs.org/)(Web UI 框架,与 Capacitor 无关)
@@ -8,17 +8,13 @@ Cook 只保留 Web 一套代码,服务普通浏览器和云乐坊容器。技
原生 App(iOS / Android)的代码已随 [0004 只保留 Web,移除 Capacitor 原生壳](/decisions/0004-web-only) 一并移除。
## 云乐坊 SSO
## 没有账号体系
Web 端有两种登录路径:
站点没有登录,也没有云端同步。收藏、浏览历史和自己记的菜谱都存在浏览器 localStorage,
换设备或清浏览器数据前需要在设置页导出 JSON 再导入,详见
[0005 个人自用,去掉登录与云同步](/decisions/0005-drop-login-and-sync)。
- **在云乐坊 App 容器内**:通过宿主注入的 `window.ylf` JSAPI 直接请求宿主授权面板,用户不离开当前页面。
- **在普通浏览器中**:走顶层重定向到云乐坊授权页,授权完成后回到
`https://cook.yunyoujun.cn/auth/callback`,由该页面换回登录票据。
## 云乐坊容器
回跳地址必须是已在云乐坊登记的 HTTPS 地址,且不能带 `?platform=native` 之类的原生标记。
PKCE 能阻止授权码被旁路窃取,但不能阻止恶意客户端主动冒充公开客户端发起授权,
因此不要放宽回跳地址的登记要求。
回跳域名有多个时(`cook.yunyoujun.cn`、`cook.yunle.fun`),按当前页面 origin 选对应的那个,
`yunlefunSsoRedirectUris` 里没登记的域名会直接判定为配置错误并拒绝登录。
被云乐坊 App(`window.ylf` JSAPI)内嵌时会按宿主的展示形态、安全区与胶囊位置调整布局,
实现见 `utils/yunleHost.ts`。这是 Web 被第三方 App 容器加载时的适配层,与账号无关。