feat(server): OIDC 登录支持(F23)
- 引入 openid-client,新增 /api/auth/oidc/login + /api/auth/oidc/callback - 通过 email 绑定既有员工账号,保留密码登录 fallback - OIDC 状态存 cookie(HMAC) + PKCE + SameSite=lax 防 CSRF - 更新 env/README 与 v3 CSV 状态推进
这个提交包含在:
@@ -394,6 +394,11 @@ npm run job:ocr-once
|
||||
- `RATE_LIMIT_LOGIN_MAX`: `/api/auth/login` 等接口限流次数(默认 `10`)
|
||||
- `RATE_LIMIT_LOGIN_WINDOW`: 限流时间窗(默认 `1 minute`,支持 ms 格式如 `30s`/`1m`)
|
||||
- `DELEGATION_REVOKE_CRON`: 委派自动回收定时表达式(默认 `0 * * * *`)
|
||||
- `OIDC_ENABLED`: 是否启用 OIDC 登录(可选;默认 `false`)
|
||||
- `OIDC_ISSUER_URL`: OIDC issuer URL(发现地址)
|
||||
- `OIDC_CLIENT_ID` / `OIDC_CLIENT_SECRET`: OIDC client 配置
|
||||
- `OIDC_REDIRECT_URI`: 回调地址(例如 `http://127.0.0.1:3000/api/auth/oidc/callback`)
|
||||
- `OIDC_SCOPES`: 默认 `openid profile email`
|
||||
- `OCR_PROVIDER`: `off` / `mock` / `tencent`(默认 `off`)
|
||||
- `OCR_BATCH_SIZE`: 每轮 OCR 认领数量(默认 `10`)
|
||||
- `OCR_LOCK_TTL_SECONDS`: OCR 锁超时秒数(默认 `300`)
|
||||
|
||||
在新工单中引用
屏蔽一个用户