- 后端:基于 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>
74 lines
2.3 KiB
JSON
74 lines
2.3 KiB
JSON
{
|
|
"name": "@seclusion/api",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "nest start --watch",
|
|
"build": "nest build",
|
|
"start": "node dist/main",
|
|
"start:prod": "node dist/main",
|
|
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
"test": "jest",
|
|
"test:watch": "jest --watch",
|
|
"test:cov": "jest --coverage",
|
|
"clean": "rm -rf dist .turbo node_modules",
|
|
"db:generate": "dotenv -e .env -e .env.local -- prisma generate",
|
|
"db:push": "dotenv -e .env -e .env.local -- prisma db push",
|
|
"db:migrate": "dotenv -e .env -e .env.local -- prisma migrate dev",
|
|
"db:migrate:reset": "dotenv -e .env -e .env.local -- prisma migrate reset",
|
|
"db:studio": "dotenv -e .env -e .env.local -- prisma studio",
|
|
"db:seed": "dotenv -e .env -e .env.local -- ts-node prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^10.4.15",
|
|
"@nestjs/config": "^3.3.0",
|
|
"@nestjs/core": "^10.4.15",
|
|
"@nestjs/jwt": "^10.2.0",
|
|
"@nestjs/passport": "^10.0.3",
|
|
"@nestjs/platform-express": "^10.4.15",
|
|
"@nestjs/swagger": "^8.1.0",
|
|
"@paralleldrive/cuid2": "^3.0.6",
|
|
"@prisma/client": "^6.1.0",
|
|
"@seclusion/shared": "workspace:*",
|
|
"bcrypt": "^5.1.1",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.1",
|
|
"ioredis": "^5.9.2",
|
|
"minio": "^8.0.6",
|
|
"nanoid": "^5.1.6",
|
|
"nodemailer": "^7.0.12",
|
|
"oidc-provider": "^9.6.0",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.1",
|
|
"svg-captcha": "^1.4.0",
|
|
"uuid": "^13.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.4.9",
|
|
"@nestjs/schematics": "^10.2.3",
|
|
"@nestjs/testing": "^10.4.15",
|
|
"@seclusion/eslint-config": "workspace:*",
|
|
"@seclusion/typescript-config": "workspace:*",
|
|
"@types/bcrypt": "^5.0.2",
|
|
"@types/express": "^5.0.0",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/multer": "^2.0.0",
|
|
"@types/node": "^22.10.2",
|
|
"@types/nodemailer": "^7.0.5",
|
|
"@types/oidc-provider": "^9.5.0",
|
|
"@types/passport-jwt": "^4.0.1",
|
|
"@types/uuid": "^11.0.0",
|
|
"dotenv-cli": "^11.0.0",
|
|
"eslint": "^9.39.0",
|
|
"jest": "^29.7.0",
|
|
"prisma": "^6.1.0",
|
|
"source-map-support": "^0.5.21",
|
|
"ts-jest": "^29.2.5",
|
|
"ts-loader": "^9.5.1",
|
|
"ts-node": "^10.9.2",
|
|
"typescript": "^5.7.2"
|
|
}
|
|
}
|