Skip to content

feat: 添加 Supabase JWT 认证 #4

@luojiyin1987

Description

@luojiyin1987

概述

实现基于 Supabase 的用户认证系统,前端使用 @supabase/supabase-js 登录获取 JWT,后端 FastAPI 进行 JWT 校验。

架构

┌─────────────┐                    ┌─────────────┐
│  Next.js    │                    │  FastAPI    │
│  Frontend   │                    │  Backend    │
└──────┬──────┘                    └──────┬──────┘
       │ 1. Supabase 登录                 │
       │    getAccessToken()              │
       │ 2. Authorization: Bearer <jwt>   │
       │    ─────────────────────────────→│ 3. JWT 校验 (Supabase JWT)
       │                                  │ 4. 业务逻辑
       │←─────────────────────────────────│

任务清单

Backend

  • 添加 @supabase/supabase-js 依赖
  • 实现 JWT 验证中间件 / 依赖函数
  • 添加 /auth/me 端点(获取当前用户信息)
  • 配置 Supabase JWT Secret(环境变量)
  • 编写认证相关测试

Frontend

  • 安装 @supabase/supabase-js
  • 配置 Supabase 客户端(环境变量)
  • 创建登录组件
  • 实现登录状态管理(Context/Zustand)
  • API 客户端自动注入 Bearer Token
  • 添加 Protected Route 包装器
  • 登录/登出 UI

环境变量

# .env.local (Frontend)
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=

# .env (Backend)
SUPABASE_JWT_SECRET=  # 或 SUPABASE_URL + SUPABASE_ANON_KEY

参考资料

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions