- 后端:基于 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>
83 lines
2.8 KiB
Plaintext
83 lines
2.8 KiB
Plaintext
# ===========================================
|
||
# 环境变量配置说明
|
||
# ===========================================
|
||
# .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 私钥(RS256,PEM 格式,Base64 编码)
|
||
# 生成方式: openssl genrsa 2048 | base64 -w 0
|
||
# 注意: 生产环境必须配置,开发环境可留空使用临时密钥
|
||
OIDC_JWKS_PRIVATE_KEY=
|