概述
这是一个 Next.js 模板,包含以下技术:
- next.js(app router)
- drizzle orm
- lucia auth
- sqlite(或 turso)
- shadcn
- react hook form
- zsa(服务器操作验证)
- 分层架构示例
- resend 邮件
这个模板的目的是让你能够快速搭建一个项目,其中包含许多现成的必要身份验证功能,例如:
- Google OAuth 登录
- GitHub OAuth 登录
- 魔法链接登录
- 邮箱/密码登录
- 密码重置流程邮件
- 账户注册 + 确认邮件
本地运行
cp .env.sample .env
(填写必要的信息以支持 resend 邮件功能,以及你的 Google 和 GitHub OAuth 信息,更多信息见下文)npm i
npx drizzle-kit push
(将创建你的 sqlite 数据库)npm run dev
设置 Google 提供商
如果你想使用 Google 登录,你需要设置一个 Google 项目并创建一些密钥:
- 访问 https://console.cloud.google.com/apis/credentials
- 创建一个新项目
- 设置 OAuth 同意屏幕
- 创建凭据 - OAuth 客户端 ID
- 对于授权的 JavaScript 来源:
- 授权的重定向 URI:
- 在 .env 文件中设置你的 Google ID 和密钥:
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
设置 GitHub 提供商
待完成
贡献
我希望保持这个模板尽可能精简,只添加与身份验证相关的功能。未来可能会添加一些不错的功能,如多因素认证、从所有设备登出等。我欢迎贡献,但请记住"仅限身份验证相关内容"这一核心理念。