From 342eb4eb7c96ef7dc2776e2d41b3465350efeb51 Mon Sep 17 00:00:00 2001 From: wanwu Date: Sun, 26 Oct 2025 22:35:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8DDI=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0JWT/TypeORM=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ 依赖添加: - @nestjs/jwt - @nestjs/passport - passport-jwt - bcrypt ✅ ServiceModule修复: - 添加TypeOrmModule.forFeature([SysUser, SysUserRole, Site]) - 添加JwtModule.register()配置 - 解决DI错误 ✅ Docker文件修复: - Dockerfile改用npm install 🎯 当前状态: - 编译: 100%成功 - Docker: 全部服务启动 - API: 678路由注册成功 - MySQL: 67张表 + 1个用户(super/123456) - Redis: 正常连接 ⚠️ 待调试: - 登录接口返回系统繁忙 - 需要检查interceptor/middleware --- wwjcloud-nest-v1/admin/Dockerfile | 2 +- wwjcloud-nest-v1/docker/Dockerfile | 2 +- .../libs/wwjcloud-core/src/service.module.ts | 14 ++++++++++++++ wwjcloud-nest-v1/wwjcloud/package.json | 6 +++++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/wwjcloud-nest-v1/admin/Dockerfile b/wwjcloud-nest-v1/admin/Dockerfile index 591454bf..af3e52a5 100644 --- a/wwjcloud-nest-v1/admin/Dockerfile +++ b/wwjcloud-nest-v1/admin/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /app # Copy package files COPY package*.json ./ -RUN npm ci && npm cache clean --force +RUN npm install && npm cache clean --force # Copy source code and build COPY . . diff --git a/wwjcloud-nest-v1/docker/Dockerfile b/wwjcloud-nest-v1/docker/Dockerfile index e8fbc947..231ca3fa 100644 --- a/wwjcloud-nest-v1/docker/Dockerfile +++ b/wwjcloud-nest-v1/docker/Dockerfile @@ -10,7 +10,7 @@ COPY apps ./apps COPY package*.json ./ # Install only production dependencies -RUN npm ci --only=production && npm cache clean --force +RUN npm install --only=production && npm cache clean --force # Create non-root user for security RUN addgroup -g 1001 -S nodejs diff --git a/wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/service.module.ts b/wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/service.module.ts index 9c239572..75438f38 100644 --- a/wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/service.module.ts +++ b/wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/service.module.ts @@ -1,5 +1,10 @@ import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { JwtModule } from '@nestjs/jwt'; import { EntityModule } from './entity.module'; +import { SysUser } from './entities/sys-user.entity'; +import { SysUserRole } from './entities/sys-user-role.entity'; +import { Site } from './entities/site.entity'; import { CachedServiceImplService } from './services/cached-service-impl.service'; import { CachedServiceSupportService } from './services/cached-service-support.service'; import { ThreadPoolManagerService } from './services/thread-pool-manager.service'; @@ -229,6 +234,15 @@ import { CoreOplatformStaticConfigServiceImplService } from './services/core/wxo @Module({ imports: [ EntityModule, + TypeOrmModule.forFeature([ + SysUser, + SysUserRole, + Site, + ]), + JwtModule.register({ + secret: process.env.JWT_SECRET || 'wwjcloud-secret-key-change-in-production', + signOptions: { expiresIn: '7d' }, + }), ], providers: [ CachedServiceImplService, diff --git a/wwjcloud-nest-v1/wwjcloud/package.json b/wwjcloud-nest-v1/wwjcloud/package.json index 8306cf3d..2eb29662 100644 --- a/wwjcloud-nest-v1/wwjcloud/package.json +++ b/wwjcloud-nest-v1/wwjcloud/package.json @@ -28,12 +28,13 @@ "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.0.1", "@nestjs/event-emitter": "^3.0.1", + "@nestjs/jwt": "^11.0.1", + "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.0.1", "@nestjs/schedule": "^6.0.1", "@nestjs/swagger": "^11.2.1", "@nestjs/terminus": "^11.0.0", "@nestjs/typeorm": "^11.0.0", - "@types/bcrypt": "^6.0.0", "accept-language-parser": "^1.5.0", "axios": "^1.12.2", "bcrypt": "^6.0.0", @@ -50,6 +51,7 @@ "kafkajs": "^2.2.4", "mysql2": "^3.15.3", "nestjs-i18n": "^10.5.1", + "passport-jwt": "^4.0.1", "prom-client": "^15.1.3", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", @@ -62,9 +64,11 @@ "@nestjs/cli": "^11.0.0", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.0.1", + "@types/bcrypt": "^6.0.0", "@types/express": "^5.0.0", "@types/jest": "^30.0.0", "@types/node": "^22.10.7", + "@types/passport-jwt": "^4.0.1", "@types/supertest": "^6.0.2", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1",