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-03、signup-03、dashboard-01),不做自定义设计 - 表单:react-hook-form + zod(所有超过 1 个字段的表单强制使用)
- 图标:Lucide(shadcn 推荐,不自写 SVG)
Capabilities
New Capabilities
auth-core:Supabase Auth 业务逻辑层——IAuthRepository(core/repositories/)、SupabaseAuthRepository(infra/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 iconsauth-routing:路由保护机制——(auth)/(protected)route groups、middleware 重定向逻辑、/auth/callback统一处理、dashboard-01
Modified Capabilities
template-directory-contract:新增features/auth/作为 auth feature 示例(丰富参考实现)template-self-config:copilot-instructions.md更新,记录 auth 使用约定和 shadcn/forms 规则
Non-goals
- 不实现 忘记密码 / 重置密码流程(独立 change)
- 不实现 用户资料页 / 头像上传 / 账号设置(独立 change)
- 不实现 角色权限 / RBAC(独立 change)
- 不实现 Magic Link / OTP / 手机号登录(独立 change)
- 不做 自定义 UI 设计(全部使用 shadcn blocks,UI 统一处理放后)
- 不做 邮件模板自定义(使用 Supabase 默认邮件模板)
- 不做 第三方服务 Resend 集成(自部署 Supabase 已支持真实邮件发送)