ByteNoteByteNote

字节笔记本

2026年5月3日

TanStack Start - 认证概述 (Authentication Overview)

API中转
¥120

全栈应用认证架构、解决方案选择和最佳实践。认证(Authentication)是"这个用户是谁",授权(Authorization)是"这个用户能做什么"。

全栈认证模型

服务端(安全)

  • 会话存储和验证
  • 用户凭据验证
  • 数据库操作
  • 令牌生成/验证
  • 受保护的 API 端点

客户端(公开)

  • 认证状态管理
  • 路由保护逻辑
  • 登录/登出用户界面
  • 重定向处理

会话管理模式

方法安全性适用场景
HTTP-Only Cookies⭐⭐⭐⭐⭐传统 Web 应用
JWT Tokens⭐⭐⭐⭐API 优先应用
服务端会话⭐⭐⭐⭐⭐需要即时控制

路由保护架构

布局路由模式(推荐)

tsx
- __root.tsx
  - (authenticated)
    - dashboard.tsx
    - settings.tsx
    - profile.tsx

服务端函数守卫

tsx
export const sensitiveOperation = createServerFn()
  .middleware([authMiddleware])
  .handler(async ({ context }) => {
    return performSensitiveOperation(context.user)
  })

认证选项

合作伙伴解决方案

方案特点适用场景
WorkOSSSO、SCIM、合规企业应用
ClerkUI 组件、社交登录、MFA快速开发

开源方案

方案特点
Better AuthTypeScript 优先
Auth.jsReact 生态成熟

托管服务

方案特点
Supabase AuthPostgreSQL 集成
Auth0企业级支持
Firebase AuthGoogle 生态

架构决策

需求推荐
快速启动Clerk
企业 SSOWorkOS
开源定制Better Auth / Auth.js
全栈平台Supabase
完全控制DIY

安全实践清单

  • 使用 HTTPS
  • HTTP-only cookies
  • 服务端验证所有输入
  • 密钥存储在服务端
  • 速率限制
  • CSRF 保护
  • 密码哈希(bcrypt)
  • 会话过期

在 AI 技术快速迭代的今天,保持持续学习的能力比掌握任何特定的技术都更重要。理解底层原理可以帮助你在遇到新技术时更快地上手,可以在不同的技术方案之间做出更明智的选择。建议开发者建立自己的技术框架,而不是追逐每一个新的工具和框架。实践是最好的学习方式,在真实项目中应用新学到的技术,遇到问题并解决,这种经历比任何教程都更有价值。定期整理和复盘也是很好的习惯。将学到的知识归档整理,形成自己的知识库。当需要用到某个技术时,可以直接从自己的知识库中找到相关的参考,而不是从零开始搜索。

分享: