Files
what-to-eat/docs/dev/app.md
T
toor 76a5d71252 refactor: 只保留 Web,移除 Capacitor 原生壳
删除 android/、ios/ 两个 Capacitor 原生工程与 capacitor.config.ts、
ionic.config.json,以及 scripts/android、scripts/ios.sh 构建脚本;
根与 apps/web 的 @capacitor/* 依赖和相关 npm scripts 一并移除。

Web 侧去掉原生分支:登录只走云乐坊容器授权面板或顶层重定向,
暗色模式不再改原生状态栏,移除 Android 物理返回键处理。

保留 @nuxtjs/ionic(Web UI 框架)、云乐坊 window.ylf 桥接与 PWA。

决策记录见 docs/decisions/0004-web-only.md。
2026-10-21 12:27:50 +08:00

1.3 KiB
Raw Blame History

Web 应用

Cook 只保留 Web 一套代码,服务普通浏览器和云乐坊容器。技术栈:

原生 App(iOS / Android)的代码已随 0004 只保留 Web,移除 Capacitor 原生壳 一并移除。

云乐坊 SSO

Web 端有两种登录路径:

  • 在云乐坊 App 容器内:通过宿主注入的 window.ylf JSAPI 直接请求宿主授权面板,用户不离开当前页面。
  • 在普通浏览器中:走顶层重定向到云乐坊授权页,授权完成后回到 https://cook.yunyoujun.cn/auth/callback,由该页面换回登录票据。

回跳地址必须是已在云乐坊登记的 HTTPS 地址,且不能带 ?platform=native 之类的原生标记。 PKCE 能阻止授权码被旁路窃取,但不能阻止恶意客户端主动冒充公开客户端发起授权, 因此不要放宽回跳地址的登记要求。

回跳域名有多个时(cook.yunyoujun.cn、cook.yunle.fun),按当前页面 origin 选对应的那个, yunlefunSsoRedirectUris 里没登记的域名会直接判定为配置错误并拒绝登录。