refactor: 迁移本地 Supabase 到云端,使用 JWKS 进行 JWT 验证

- 新增 JwtVerifier 支持 RS256 + JWKS 验证
- 简化 docker-compose,删除本地 Supabase 服务(kong/auth/storage等)
- 删除冗余的 Supabase 配置文件(volumes目录)
- 适配测试用例以支持新配置方式
- 更新运行时文档和迁移计划
This commit is contained in:
qzl
2026-03-09 18:03:04 +08:00
parent 3ac09475ad
commit 6fe2e7b6c3
24 changed files with 825 additions and 1403 deletions
+10 -77
View File
@@ -19,7 +19,7 @@ SOCIAL_WEB__WORKERS=2
############
# Redis 配置
############
SOCIAL_REDIS__PASSWORD=change-me-redis-password
SOCIAL_REDIS__PASSWORD=redis-secure-2026
SOCIAL_REDIS__HOST=localhost
SOCIAL_REDIS__PORT=6379
SOCIAL_REDIS__DB=0
@@ -43,20 +43,14 @@ SOCIAL_WORKER__GROUPS__BULK__CONCURRENCY=1
# SOCIAL_TASKIQ__RESULT_BACKEND_URL=redis://:password@localhost:6379/0
############
# Supabase本地 Docker 与阿里云自托管保持同一变量
# Supabase云模式,后端必需
############
# Supabase 栈使用 infra/docker/docker-compose.yml
# 仅绑定 127.0.0.1,不对局域网/公网暴露
SOCIAL_SUPABASE__PUBLIC_URL=https://your-project.supabase.co
SOCIAL_SUPABASE__ANON_KEY=
SOCIAL_SUPABASE__SERVICE_ROLE_KEY=
# 基础 URL(本地默认 8000
SOCIAL_SUPABASE__PUBLIC_SCHEME=http
SOCIAL_SUPABASE__PUBLIC_HOST=localhost
SOCIAL_SUPABASE__SITE_URL=http://localhost:3000
#######
# 本地 Supabase 端口(只绑定 127.0.0.1
SOCIAL_SUPABASE__KONG_HTTP_PORT=8000
SOCIAL_SUPABASE__KONG_HTTPS_PORT=8443
# Cloud Auth 可选配置(默认值已满足大多数场景
SOCIAL_SUPABASE__JWT_AUDIENCE=authenticated
# Postgres 连接信息(后端与 Supabase 共用密码)
SOCIAL_DATABASE__HOST=localhost
@@ -65,70 +59,9 @@ SOCIAL_DATABASE__NAME=postgres
SOCIAL_DATABASE__USER=postgres
SOCIAL_DATABASE__PASSWORD=change-me-strong-password
# JWT/Keys(必须替换
SOCIAL_SUPABASE__JWT_SECRET=change-me-jwt-secret-at-least-32-chars
SOCIAL_SUPABASE__ANON_KEY=replace-with-supabase-anon-key
SOCIAL_SUPABASE__SERVICE_ROLE_KEY=replace-with-supabase-service-role-key
# Studio 登录
SOCIAL_SUPABASE__DASHBOARD_USERNAME=admin
SOCIAL_SUPABASE__DASHBOARD_PASSWORD=change-me
# 核心加密 Key(必须替换)
SOCIAL_SUPABASE__SECRET_KEY_BASE=change-me-secret-key-base
SOCIAL_SUPABASE__VAULT_ENC_KEY=change-me-vault-enc-key
SOCIAL_SUPABASE__PG_META_CRYPTO_KEY=change-me-pg-meta-crypto-key
#######
# Logflare(本地可用假值,但不要上云)
SOCIAL_SUPABASE__LOGFLARE_PUBLIC_ACCESS_TOKEN=change-me-logflare-public
SOCIAL_SUPABASE__LOGFLARE_PRIVATE_ACCESS_TOKEN=change-me-logflare-private
#######
# Pooler
SOCIAL_SUPABASE__POOLER_TENANT_ID=local
SOCIAL_SUPABASE__POOLER_DEFAULT_POOL_SIZE=20
SOCIAL_SUPABASE__POOLER_MAX_CLIENT_CONN=100
SOCIAL_SUPABASE__POOLER_DB_POOL_SIZE=5
#######
# Auth 可选项(默认允许邮箱注册)
SOCIAL_SUPABASE__ENABLE_EMAIL_SIGNUP=true
SOCIAL_SUPABASE__ENABLE_EMAIL_AUTOCONFIRM=false
SOCIAL_SUPABASE__ENABLE_ANONYMOUS_USERS=false
SOCIAL_SUPABASE__ENABLE_PHONE_SIGNUP=false
SOCIAL_SUPABASE__ENABLE_PHONE_AUTOCONFIRM=false
SOCIAL_SUPABASE__ADDITIONAL_REDIRECT_URLS=
SOCIAL_SUPABASE__DISABLE_SIGNUP=false
#######
# SMTP(上云必配,本地可留空)
SOCIAL_SUPABASE__SMTP_ADMIN_EMAIL=
SOCIAL_SUPABASE__SMTP_HOST=
SOCIAL_SUPABASE__SMTP_PORT=
SOCIAL_SUPABASE__SMTP_USER=
SOCIAL_SUPABASE__SMTP_PASS=
SOCIAL_SUPABASE__SMTP_SENDER_NAME=
#######
# Auth 邮件模板 URL(本地默认走 mail-templates 静态服务)
SOCIAL_SUPABASE__MAILER_TEMPLATES_CONFIRMATION=http://mail-templates/confirmation.html
SOCIAL_SUPABASE__MAILER_TEMPLATES_RECOVERY=http://mail-templates/recovery.html
#######
# Auth 邮件主题(仅保留注册确认与重置密码)
SOCIAL_SUPABASE__MAILER_SUBJECTS_CONFIRMATION=请确认你的注册邮箱
SOCIAL_SUPABASE__MAILER_SUBJECTS_RECOVERY=重置你的账户密码
SOCIAL_SUPABASE__MAILER_OTP_LENGTH=6
SOCIAL_SUPABASE__MAILER_OTP_EXP=300
#######
# Storage/Image 可选配置
SOCIAL_SUPABASE__PGRST_DB_SCHEMAS=public
SOCIAL_SUPABASE__FUNCTIONS_VERIFY_JWT=false
SOCIAL_SUPABASE__IMGPROXY_ENABLE_WEBP_DETECTION=true
SOCIAL_SUPABASE__STORAGE_BUCKET_PUBLIC=public
SOCIAL_SUPABASE__STORAGE_BUCKET_PRIVATE=private
# Auth 可选项(云 Supabase Auth 行为控制
# SOCIAL_SUPABASE__SITE_URL=https://your-app-domain.example
# SOCIAL_SUPABASE__ADDITIONAL_REDIRECT_URLS=
############
# Agent Chat 附件存储配置(仅基础设施变量)