更新时间:2026年09月12日

给 Lovable 应用加上登录后,还需要确保每个用户只能访问自己的数据。本文以“私人任务清单”为例,说明 Lovable Supabase 连接、邮箱登录、数据库权限和隔离测试。以下是依据官方文档整理的操作方案,并非已替你的项目完成测试。完整产品介绍可先阅读 Lovable 中文专题

资料核对:2026 年 9 月 13 日 · Pixso 整理。

一、先确定使用哪一种后端

Lovable 内置 Cloud 已提供数据库、认证等能力,不是所有项目都必须再连接 Supabase。本文针对自己持有 Supabase 账号并管理后端的情况:数据库、认证设置和用量在 Supabase 后台管理。Cloud 与自有 Supabase 之间没有一键自动迁移,已有数据的项目应先备份并规划迁移。连接规则见 Lovable 的 Supabase 集成说明

Lovable 连接 Supabase 后建立登录、任务表与用户权限并进行双账号验证的流程示意
流程示意:连接项目 → 配置登录 → 建立归属字段与权限 → 双账号验证;不是实际产品截图或测试结果。

二、连接项目并配置 Lovable 登录

  1. 连接组织。由 Lovable 工作区所有者或管理员在 Connectors 中选择 Supabase,授权需要连接的组织。再由有项目编辑权限的成员选择相应 Supabase 项目。
  2. 核对项目。没有后端的现有项目,可在 More → Cloud 中打开连接自有 Supabase 的入口。确认连接后的名称与测试项目一致,避免改动正式数据库。
  3. 生成登录流程。提出明确需求:“添加邮箱密码注册、登录、退出和密码重置;未登录时不能进入任务页;登录失败时显示可理解的提示,并保留用户输入。”
  4. 核对认证设置。在 Supabase 的 Authentication 中检查邮件确认与用户记录。启用邮件确认时,要完成验证再登录;增加 Google 等登录方式时,还需配置提供方及其凭据。

测试建议使用两个由你控制的邮箱并完成确认,不要为了方便把正式环境的验证永久关闭。密码重置应包含申请邮件和设置新密码两个环节;页面显示“邮件已发送”不能单独证明邮件实际送达。详见 Supabase 邮箱密码认证

三、给 Lovable 数据库建立归属与权限

给任务表设置 iduser_idtitlecompleted 等字段,user_id 保存任务所属用户。可以要求 Lovable:“建立私人任务表,所有者字段不能为空;用户只能操作自己的任务,匿名用户不能读写。执行前说明结构和权限变更。”先审核迁移,确认不含意外删除或覆盖。

生成后还要打开应用检查:新用户首次登录应看到清楚的空状态;网络请求失败时应保留填写内容,避免把失败显示为保存成功。刷新页面后任务应从数据库重新读取,而不是仅停留在浏览器的临时状态。这些具体条件适合一起加入提示词,便于逐项验收。

认证说明“你是谁”,RLS 行级安全决定“你能操作哪一行”。按钮隐藏和前端筛选不能代替数据库权限。在 Supabase 检查表已启用 RLS,并逐项核对:

  • 查询、删除:仅允许已登录角色操作 auth.uid() = user_id 的记录。
  • 新增:通过 WITH CHECK 验证新记录属于当前用户,不能把他人的 ID 写成所有者。
  • 更新:检查原记录归属和修改后的归属,防止把任务转给他人;同时配置对应的查询策略。
  • 授权范围:同时检查表级授权及已有策略,避免另一条宽松规则意外扩大访问范围。

上述是私人任务表的权限目标,团队共享表还需要成员关系与角色设计,不能直接套用。实现细节见 Supabase RLS 文档

浏览器可使用 publishable key(旧项目也可能使用 anon key),但用户访问仍依赖会话和权限规则。secret key、旧 service_role key 具有高权限,必须留在受控后端,不能放入前端代码、截图或公开仓库。普通用户隔离测试也不能用这类密钥代替用户身份。参阅 Supabase API 密钥说明

四、用两个账号验证数据隔离

只在自己的测试项目中进行,使用虚构任务。用两个独立浏览器配置分别登录 A、B,避免共享会话。以下是应验证的结果,不能仅凭 AI 回复“权限已修复”判定通过。

  1. 验证正常流程。A 创建“任务 A”,B 创建“任务 B”;分别刷新、修改并重新登录,各自记录应保存且归属正确。
  2. 验证读取隔离。把任务 A 的详情地址放到 B 的会话中。除页面显示不可访问外,还要检查对应网络响应没有包含 A 的标题等数据。
  3. 验证写入隔离。请开发者通过应用实际接口,以 B 的普通用户会话尝试修改、删除任务 A,并尝试新增 user_id 为 A 的记录。预期是操作被拒绝或没有记录被修改;随后切回 A,确认原数据未变。
  4. 验证退出状态。退出后刷新任务页并访问原详情链接;接口不能继续返回私人数据。再交换 A、B 重复测试,排除只保护了一方的情况。

记录账号、操作、响应及前后数据。某些权限规则会返回空结果而非报错,所以“请求没报错”不代表写入成功或越权;应核对实际影响的记录。若发现越权,暂停正式数据接入,修复后重跑同一组测试。

同时验证正常删除:各账号新建一条可丢弃的测试任务,删除后刷新,确认只删掉自己的目标记录。检查失败操作是否仍显示“保存成功”,切换账号后列表是否残留上一人的缓存。数据库隔离通过后,界面中的错误提示和缓存处理也应与实际结果一致。

五、常见故障按层排查

  • 无法连接:检查工作区管理权限、Supabase 项目是否暂停,以及 Lovable 是否仍在处理任务。
  • 注册后进不去:检查用户是否已确认邮箱、会话是否建立及错误信息。邮件不到时检查发送日志、限流与 SMTP;正式服务应评估独立邮件发送配置。
  • 确认邮件跳到旧地址:核对 Supabase 的 Site URL、Redirect URLs 和应用实际回调地址。生产环境使用精确的回调路径,注意协议、域名和路径一致。参阅 认证重定向配置
  • 能登录却看不到任务:检查当前用户 ID、任务的归属字段、表级授权和 RLS。不要直接关闭 RLS 来消除空列表。
  • 能新增不能更新:核对查询与更新策略,以及请求中的所有者是否被错误修改。

六、发布前再验证一次正式地址

完成双账号测试后,再检查密码重置、邮件确认、退出和刷新登录状态。Lovable 的安全扫描可以辅助发现问题,但不能替代代码、权限与接口审核,见 Lovable 安全说明。更换域名后还要重测回调,可继续阅读 Lovable 发布与自定义域名教程