Files
seclusion/apps/api/.env.example
charilezhou 90513e8278 feat: 实现完整的 OIDC Provider 功能
- 后端:基于 node-oidc-provider 实现 OIDC Provider
  - 支持 authorization_code、refresh_token、client_credentials 授权类型
  - Redis adapter 存储会话数据,Prisma adapter 存储持久化数据
  - 客户端管理 CRUD API(创建、更新、删除、重新生成密钥)
  - 交互 API(登录、授权确认、中止)
  - 第一方应用自动跳过授权确认页面
  - 使用 cuid2 生成客户端 ID

- 前端:OIDC 客户端管理界面
  - 客户端列表表格(支持分页、排序)
  - 创建/编辑弹窗(支持所有 OIDC 配置字段)
  - OIDC 交互页面(登录表单、授权确认表单)

- 共享类型:添加 OIDC 相关 TypeScript 类型定义

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 17:22:32 +08:00

83 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ===========================================
# 环境变量配置说明
# ===========================================
# .env - 默认开发配置,提交到仓库
# .env.local - 本地覆盖配置,不提交(敏感信息放这里)
# ===========================================
# ----- 数据库配置 -----
# PostgreSQL 连接字符串
# 格式: postgresql://用户名:密码@主机:端口/数据库名
# 本地开发使用 docker compose 启动: docker compose -f deploy/docker-compose.yml up -d
DATABASE_URL="postgresql://dev:dev@localhost:5432/seclusion"
# ----- Redis 配置 -----
# Redis 连接字符串
# 格式: redis://[用户名:密码@]主机:端口[/数据库号]
# 本地开发使用 docker compose 启动: docker compose -f deploy/docker-compose.yml up -d
REDIS_URL="redis://localhost:6379"
# ----- JWT 配置 -----
# JWT 签名密钥(生产环境必须修改为强随机字符串)
JWT_SECRET="your-super-secret-key-change-in-production"
# JWT 过期时间(支持格式: 60, "2 days", "10h", "7d"
JWT_EXPIRES_IN="7d"
# ----- 应用配置 -----
# 服务端口
PORT=4000
# 运行环境: development | production | test
NODE_ENV=development
# 前端 URL用于 OIDC 交互重定向)
FRONTEND_URL=http://localhost:3000
# ----- 加密配置 -----
# 是否启用通信加密 (true/false)
ENABLE_ENCRYPTION=false
# AES-256-GCM 加密密钥 (32 字节 Base64 编码)
# 生成方式: openssl rand -base64 32
# 注意: 生产环境必须使用强随机密钥,且前后端保持一致
ENCRYPTION_KEY=
# ----- SMTP 邮件配置 -----
# SMTP 服务器地址
SMTP_HOST=smtp.example.com
# SMTP 端口(通常 587 或 465
SMTP_PORT=587
# 是否使用 SSL/TLS端口 465 时通常为 true
SMTP_SECURE=false
# SMTP 用户名
SMTP_USER=your-email@example.com
# SMTP 密码或应用专用密码
SMTP_PASS=your-password
# 发件人地址
SMTP_FROM=noreply@example.com
# ----- MinIO 对象存储配置 -----
# MinIO 服务地址
MINIO_ENDPOINT=localhost
# MinIO 端口
MINIO_PORT=9000
# 是否使用 SSL
MINIO_USE_SSL=false
# MinIO 访问密钥
MINIO_ACCESS_KEY=minioadmin
# MinIO 密钥
MINIO_SECRET_KEY=minioadmin
# 存储桶名称
MINIO_BUCKET=seclusion
# 公开访问 URL可选用于 CDN 或 Nginx 代理)
# 如果设置,将使用此 URL 作为文件访问地址前缀
# 示例: https://cdn.example.com 或 https://example.com/storage
MINIO_PUBLIC_URL=
# ----- OIDC Provider 配置 -----
# OIDC 签发者 URL必须是可公开访问的 URL包含 /oidc 路径)
OIDC_ISSUER=http://localhost:4000/oidc
# OIDC Cookie 签名密钥(生产环境必须修改)
OIDC_COOKIE_SECRET=oidc-cookie-secret-change-in-production
# OIDC JWKS 私钥RS256PEM 格式Base64 编码)
# 生成方式: openssl genrsa 2048 | base64 -w 0
# 注意: 生产环境必须配置,开发环境可留空使用临时密钥
OIDC_JWKS_PRIVATE_KEY=