Supabase 集成
Supabase 是 SteadyRenew 的可选云层。未配置 Supabase 时,应用仍然可以使用本地存储模式。Supabase 负责什么
- 用户认证。
- 多设备订阅同步。
- API Key 归属关系。
- 订阅数据表。
- 付费状态和套餐信息。
- Bark 提醒配置。
- AI 录入的每月配额与月度预算计数。
配置步骤
- 创建 Supabase 项目。
- 应用
supabase/目录下的 migrations。 - 在前端配置
VITE_SUPABASE_URL和VITE_SUPABASE_ANON_KEY。 - 在 Netlify Functions 环境中配置
SUPABASE_SECRET_KEY,或继续使用兼容别名SUPABASE_SERVICE_ROLE_KEY。
SQL migrations
正式 schema 由时间戳迁移管理:安全边界
浏览器只能使用 anon key。任何需要绕过 RLS 或执行可信写入的逻辑,都必须放在 Netlify Functions 中,并使用 service role key。RLS
数据库表应该通过 Row Level Security 限制用户只能访问自己的数据。开放 API 也会根据 API Key 所属用户过滤订阅查询。与开放 API 的关系
开放 API 使用 Developer API Key 认证。Function 验证 key 后,会以 key owner 的身份读写订阅数据。更换域名
先在 Supabase Auth 回调允许列表中追加新应用域名及/app 回调,保留已有条目。新域名 HTTPS 验证通过后再切换 Site URL。继续使用原 Supabase 项目,让账户、云端记录和 Premium 权益保持一致。
通行密钥绑定原来的 RP 域名,不能通过修改回调地址迁往另一个域名。过渡期先保留旧 RP 配置,确认用户有其他登录方式,再单独安排新 RP 配置和用户重新注册。仅存于浏览器的记录,需要在旧站导出 JSON、到新站导入。