LogoLandingMore
开发指南

数据库和鉴权认证概览

数据库和鉴权认证模块

Cloudflare Workers + Next.js + Drizzle D1 + Better Auth 参考文档

这个项目使用了一个完整的现代化全栈解决方案,特别适合需要全球部署、高性能和成本可控的 Web 应用:

Cloudflare Worker Nextjs

  • 作用:在 Cloudflare Workers 运行时部署 Next.js 应用
  • 优势:全球边缘计算、零冷启动、成本效益高
  • 适用场景:需要全球低延迟访问的现代 Web 应用

Opennext

  • 作用:Next.js 到 Cloudflare Workers 的适配器
  • 功能:处理 SSR、SSG、API 路由等 Next.js 特性的适配
  • 价值:让 Next.js 应用无缝运行在 Cloudflare 边缘环境

Drizzle ORM 依赖

  • 作用:类型安全的 SQL-like ORM
  • 特点:零依赖、SQL-like 语法、完整的 TypeScript 支持
  • 与 D1 集成:专为 Cloudflare D1 数据库优化

Better Auth 认证

  • 作用:框架无关的 TypeScript 认证解决方案
  • 特性:支持多种认证方式、内置安全特性、插件生态系统
  • 优势:开箱即用的企业级认证功能

项目文件结构解析

<project root>
├── drizzle/                    # 数据库相关文件
│   └── migrations/             # 自动生成的数据库迁移文件
├── src/
│   ├── db/                     # 数据库配置和 Schema
│   │   └── schema.ts           # Drizzle 数据库表结构定义
│   │   └── index.ts            # 数据库连接和导出配置
│   ├── lib/                    # 核心库文件
│   │   ├── auth.ts             # Better Auth 服务端配置
│   │   ├── auth-client.ts      # Better Auth 客户端配置
│   │   └── auth-hoc.ts         # 认证高阶组件/工具函数
│   ├── app/                    # Next.js App Router
│   │   └── api/                # API 路由
│   │       └── auth/           # 认证相关 API
│   │           └── [...all]/   # Better Auth 的通配符路由
│   │               └── route.ts # 处理所有认证请求的路由处理器
│   └── middleware.ts           # Next.js 中间件(可能用于认证检查)
├── .env.local                  # 本地环境变量(数据库连接、认证密钥等)
├── drizzle.config.ts          # Drizzle ORM 配置文件
├── open-next.config.ts        # OpenNext Cloudflare 适配器配置
├── wrangler.toml              # Cloudflare Workers 配置
└── package.json               # 项目依赖和脚本配置

关键文件说明

drizzle.config.ts: 配置数据库连接、迁移路径、Schema 位置等

open-next.config.ts: 配置缓存策略、Cloudflare 特定优化等

wrangler.toml: 定义 Workers 配置、环境变量、绑定资源等

schema.ts: 定义数据库表结构、关系、索引等

auth.ts: 配置认证提供商、会话管理、安全策略等

架构优势

这个技术栈组合提供了:

  • 性能: 边缘计算 + 类型安全的数据库操作
  • 开发体验: TypeScript 全栈 + SQL-like 查询语法
  • 可扩展性: 无服务器架构 + 插件化认证系统
  • 成本效益: Cloudflare 的定价模型 + 零冷启动
  • 安全性: 内置的认证安全特性 + 边缘安全防护

On this page