AgentDock

Add Auth To Web Nextjs

Archived on 2026-06-05 · roadmap: web-nextjs-builtin-suite

Archived: 2026-06-05 · roadmap-id: web-nextjs-builtin-suite

Why

模板现在有四层目录契约、Supabase 数据层、monorepo + docs 共生结构,但没有身份认证——这是真实应用的硬性前提。没有 auth,路由无法保护、数据无法归属、任何用户相关功能都无法展开。

本 change 的核心原则:功能跑通优先,数据层要稳,UI 复用成熟开源方案,禁止从头造轮子

  • Auth 逻辑:Supabase Auth(与已有 @supabase/ssr 天然配套,无需换方案)
  • UI:shadcn/ui blocks(login-03signup-03dashboard-01),不做自定义设计
  • 表单:react-hook-form + zod(所有超过 1 个字段的表单强制使用)
  • 图标:Lucide(shadcn 推荐,不自写 SVG)

Capabilities

New Capabilities

  • auth-core:Supabase Auth 业务逻辑层——IAuthRepositorycore/repositories/)、SupabaseAuthRepositoryinfra/db/)、features/auth/(Server Actions: signIn / signUp / signOut / signInWithGithub)、邮箱验证 callback、session 管理
  • auth-ui:shadcn/ui 初始化 + auth 页面——login-03(GitHub OAuth + email/password)、signup-03(含 zod 邮箱验证)、react-hook-form + zod、Lucide icons
  • auth-routing:路由保护机制——(auth) / (protected) route groups、middleware 重定向逻辑、/auth/callback 统一处理、dashboard-01

Modified Capabilities

  • template-directory-contract:新增 features/auth/ 作为 auth feature 示例(丰富参考实现)
  • template-self-configcopilot-instructions.md 更新,记录 auth 使用约定和 shadcn/forms 规则

Non-goals

  • 不实现 忘记密码 / 重置密码流程(独立 change)
  • 不实现 用户资料页 / 头像上传 / 账号设置(独立 change)
  • 不实现 角色权限 / RBAC(独立 change)
  • 不实现 Magic Link / OTP / 手机号登录(独立 change)
  • 不做 自定义 UI 设计(全部使用 shadcn blocks,UI 统一处理放后)
  • 不做 邮件模板自定义(使用 Supabase 默认邮件模板)
  • 不做 第三方服务 Resend 集成(自部署 Supabase 已支持真实邮件发送)

On this page