Coderblock

如何为你的应用添加身份验证和用户账户

了解如何在 Coderblock 应用中添加注册、登录、受保护页面、用户资料和安全的数据访问。整个身份验证流程都可以通过聊天完成,无需编写密码或令牌管理代码。

2 min

为应用添加注册登录用户****账户,并不意味着你必须手动配置身份验证、会话、受保护路由和权限。 使用 Coderblock,你只需在聊天中描述想要实现的行为,其余技术配置交给智能体完成即可。

本教程将介绍如何:

  • 添加注册和登录功能;
  • 创建受保护的个人中心;
  • 管理会话和受保护路由;
  • 将数据与已登录用户关联;
  • 配置客户、管理员等角色;
  • 使用 Row Level Security 保护数据;
  • 根据需要添加第三方登录;
  • 在发布应用前测试身份验证行为。

开始之前

打开要添加身份验证功能的 Coderblock 项目。 你可以从现有应用开始,也可以通过自然语言描述想要构建的内容来创建新项目。

例如:

创建一个私人教练平台。每位客户都可以注册账户、查看自己的训练计划并记录进度。教练需要一个管理区域来管理客户。

如果应用已经存在,也可以直接要求添加用户账户:

为用户添加注册和登录功能。每位用户登录后都应拥有一个受保护的个人中心。

Coderblock 使用 Supabase Auth 管理身份验证,并会配置项目所需的部分,包括会话、受保护路由和数据库访问策略。


1. 添加注册和登录功能

最简单的开始方式,是向智能体描述你希望提供给用户的完整流程。 例如:

添加注册页面和登录页面。用户应能使用邮箱和密码创建账户,并在登录后进入自己的个人中心。

智能体会配置所需页面,并将身份验证流程连接到 Supabase Auth。 你不需要手动创建密码表,也不需要自行实现 JWT 或密码哈希。 修改完成后,检查实时预览并尝试:

  1. 创建新账户;
  2. 登录;
  3. 退出登录;
  4. 使用同一账户再次登录。

如果想自定义流程,可以继续通过聊天进行调整。 例如:

简化注册表单,并在邮箱已注册或密码无效时显示清晰的错误信息。

2. 创建受保护的个人中心

配置登录功能后,你可以决定已登录用户能够看到哪些内容。 例如:

创建一个仅限已登录用户访问的账户页面,显示姓名、邮箱、注册日期和用户活动摘要。

Coderblock 可以创建该页面并加以保护,防止未登录用户访问。 你也可以要求保护多个页面:

保护 /account/orders/settings 页面。如果未登录用户尝试访问这些页面,将其重定向到登录页面。

此时,请在未登录状态下尝试直接打开受保护页面的 URL。 未登录用户不应看到其中的受限内容。

3. 将数据关联到已登录用户

当每位用户都能拥有与自己账户关联的个人数据时,身份验证才真正发挥作用。 例如,在预约平台中,你可以提出以下要求:

添加一个预约表。每条预约记录都必须与已登录用户关联,并包含日期、时间、服务和状态。

智能体可以设计数据库结构,并将记录关联到已登录用户。 接下来,你可以要求:

在账户页面中,仅显示当前已登录用户的预约记录。

这一原则适用于任何个人数据,包括订单、预约、文档、偏好设置、消息或用户创建的内容。

4. 使用 Row Level Security 保护数据

仅仅保护页面并不够。 如果应用包含私密数据,还必须确保数据库能够阻止用户读取或修改属于其他账户的信息。 Coderblock 使用 Postgres 的 Row Level Security (RLS) 来实现这一点。 例如,你可以要求:

确保每位用户只能读取和修改自己的预约记录。用户不得访问其他账户的数据。

智能体会根据已登录用户配置所需策略。 你可以在编辑器的 后端 选项卡中检查结果,其中包括项目的数据表、已验证用户、存储和函数。

一项重要测试

至少创建两个测试账户。 使用第一个账户:

  • 创建一些数据;
  • 确认这些数据能够正常显示。

然后登录第二个账户,检查它是否无法访问上述数据。 对于处理个人信息、订单、文档或其他敏感数据的应用,这项测试尤为重要。

5. 添加角色和管理员

许多应用不只有一种用户类型。 例如,你可能需要:

  • 客户;
  • 管理员;
  • 团队成员;
  • 内容审核员;
  • 教师;
  • 专业人员。

你可以直接在聊天中描述这些角色。 例如:

添加客户和管理员角色。客户只能查看和修改自己的数据,管理员则可以访问受保护的管理仪表板,并管理用户和内容。

Coderblock 已包含基础的用户资料和角色结构,智能体可以使用这些结构配置应用权限。 接下来,你可以要求:

创建一个仅限管理员角色访问的管理仪表板。

然后,使用不同角色的账户测试实际行为。 即使客户知道管理仪表板的 URL,也不应能够访问它。

6. 自定义用户资料

配置身份验证后,你可以向用户资料中添加更多信息。 例如:

在账户页面中添加一个表单,让用户可以修改姓名、电话号码和头像。

或者:

允许用户上传头像,并将图片保存到应用的存储中。

如果产品需要收集特定信息,也可以用同样的方式进行描述。 智能体可以更新数据模型、界面和必要逻辑,将这些信息关联到正确的账户。

7. 添加第三方登录

如果希望用户通过第三方平台进行注册或登录,可以直接在聊天中提出要求。 例如:

在邮箱和密码身份验证之外,再添加 Google 登录。

Coderblock 可以将第三方登录集成到应用的身份验证流程中。 配置完成后,请测试以下两条路径:

  • 使用邮箱和密码注册及登录;
  • 使用第三方平台登录。

还要确认两种方式都会进入相同类型的个人中心,并且数据能够正确关联到用户。

8. 管理退出登录和会话

用户账户功能不能只有登录。 还应要求智能体配置会话行为:

在个人中心添加退出登录按钮,并确保用户退出后无法再访问受保护页面。

然后检查:

  1. 登录后能否正确打开个人中心;
  2. 刷新页面后,会话是否会按预期保持;
  3. 退出登录能否终止会话;
  4. 退出登录后,受保护页面是否不再可访问。

如需修改相关行为,可以直接在聊天中进行描述。

9. 测试完整流程

发布应用前,请从头到尾测试身份验证流程。

用户账户

  1. 创建新账户。
  2. 登录。
  3. 根据需要完善用户资料。
  4. 创建一些个人数据。
  5. 退出账户。
  6. 再次登录。
  7. 确认数据仍然存在。

安全性

然后创建第二个账户,并确认它:

  • 无法查看第一位用户的数据;
  • 无法修改第一位用户的数据;
  • 无法访问仅限第一位用户使用的页面;
  • 无法访问管理页面。

管理功能

如果已配置管理员角色:

  1. 使用管理员账户登录;
  2. 打开管理仪表板;
  3. 检查其中可用的功能;
  4. 切换回客户账户;
  5. 再次尝试访问管理仪表板。

测试的目的不只是确认登录功能是否正常,还要确保每位用户只能执行其角色权限范围内的操作

10. 发布应用

确认身份验证、账户、角色和权限均正常后,即可发布应用。 单击发布,将应用部署到 <app>.coderblock.app,并自动启用 SSL。

如果要使用自定义域名,请前往设置 → 域名,按照 DNS 引导流程连接现有域名,或直接在 Coderblock 中购买域名。

发布后,请至少在生产环境中重新执行以下主要测试:

  • 注册;
  • 登录;
  • 退出登录;
  • 访问受保护页面;
  • 查看个人数据;
  • 管理员权限;
  • 不同用户之间的数据访问限制。

最终检查清单

在确认身份验证功能完成之前,请检查:

  • 注册功能是否正常;
  • 登录和退出登录是否正常;
  • 会话是否得到正确管理;
  • 私有页面是否真正受到保护;
  • 每位用户是否只能访问自己的数据;
  • Row Level Security 是否配置正确;
  • 角色及其对应权限是否正常;
  • 未经授权的用户是否无法访问管理区域;
  • 第三方登录功能是否正常;
  • 用户资料数据是否关联到了正确的账户。

身份验证配置完成

使用 Coderblock,你可以通过对话这一主要交互方式,将一个没有账户系统的简单应用升级为具备注册、登录、用户资料、角色、受保护页面和个人数据的完整产品。 不过,验证仍然是最重要的环节:AI 可以配置大部分基础设施,但你必须亲自确认每个账户和每种角色都只拥有其应有的权限。

立即在 Coderblock 上开始构建