后端与接口
将 Capacitor 应用从 Ionic…
当需要移除 @ionic-enterprise/* 插件(Auth Connect、Identity Vault、Secure Storage)并替换为开源替代方案时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
将 Capacitor 应用从 Ioni特定
解决思路
- 在提问之前,先从 package.json 中自动检测 Ionic Enterprise 依赖。
- 当应用使用多个 Ionic Enterprise 包时,一次只迁移一个插件。
- 保持行为不变:尽可能沿用相同的 redirect URI、相同的 scopes、相同的会话规则和相同的存储键。
- 从注入的 package 快照开始,然后直接读取 package.json,查找 @ionic-enterprise/auth、@ionic-enterprise/identity-vault、@ionic-enterprise/secure-storage。
- 如果不存在任何 Ionic Enterprise 插件,告知用户未检测到。
- 如果存在多个,列出它们并按清晰的顺序迁移。
- 将社交和企业身份流程迁移到 @capgo/capacitor-social-login。
- 对于 OIDC 提供商,保持提供商特定流程与兼容包装器或插件文档中的 OAuth/OIDC 路径一致,以确保 scopes、redirect URL 和回调处理保持不变。
- 使用 @capgo/capacitor-native-biometric 进行设备级解锁检查,然后在应用代码中重建会话超时和锁屏行为。
- 将密钥排除在明文客户端存储之外,只存储 UX 连续性所需的最小本地状态。
- 如果应用存储加密本地数据,将其迁移到 @capgo/capacitor-fast-sql。
- 如果应用使用结构化本地持久化,保持使用 @capgo/capacitor-fast-sql,使加密和非加密路径使用同一引擎。
- 如果应用只需要非敏感键值存储,将这些值迁移到 @capacitor/preferences。
- 当应用已依赖 SQLite 支持的存储时,保留数据库 schema 并迁移访问层,而不是重写数据模型。
- 替换工作完成后,使用 rg -n "@ionic-enterprise" . 搜索项目中剩余的企业引用,并在继续之前替换或移除任何遗留项。
- 从 package.json 中移除未使用的企业包,使用仓库现有的包管理器重新安装依赖,并从包含 capacitor.config.* 的应用目录运行同步:npm install 和 npx cap sync。
- 然后验证应用在每个发布平台上都能构建。
- 对于存储迁移,除非用例明确为非敏感,否则将加密数据保留在 @capgo/capacitor-fast-sql 上。
- 当迁移后 OIDC 行为发生变化时,在发布前比较迁移前后的 redirect 和 token exchange 流程。
- 复用任何现有的安全原生存储,而不是引入第二种存储模型。
适用边界 · 注意事项
- 不适用于通用的 Capacitor 版本升级。
- 不适用于 Capgo 实时更新。