Browse Source

feat: save

gemer zhang 6 months ago
parent
commit
11fe0ad841

+ 30 - 0
docker-compose.mu.yml

@@ -0,0 +1,30 @@
+services:
+  backend:
+    image: gemer/helper_backend:latest
+    environment:
+      NODE_ENV: "production"
+      DB_HOST: "192.168.10.82" # 设置 root 用户密码
+      DB_PWD: "gemer...123"
+      DB_USER: "gemer"
+      DB_DATABASE: "helper_center"
+      REDIS_URL: "redis://redis:6379"
+    networks:
+      - backend
+    ports:
+      - "8085:8085"
+  redis:
+    image: redis:latest
+    # command: --requirepass "12345678"  # Uncomment if you need a password
+    restart: always
+    environment:
+      TZ: Asia/Shanghai # 指定时区
+    # volumes:
+    #   - ./data/redis/:/data/
+    networks:
+      - backend
+    ports:
+      - 6379:6379
+
+networks:
+  backend:
+    driver: bridge

+ 1 - 19
docker-compose.yml

@@ -7,24 +7,6 @@ services:
       DB_PWD: "gemer...123"
       DB_USER: "gemer"
       DB_DATABASE: "helper_center"
-      REDIS_URL: "redis://redis:6379"
-    networks:
-      - backend
+      REDIS_URL: "redis://192.168.10.82:63790"
     ports:
       - "8085:8085"
-  redis:
-    image: redis:latest
-    # command: --requirepass "12345678"  # Uncomment if you need a password
-    restart: always
-    environment:
-      TZ: Asia/Shanghai # 指定时区
-    # volumes:
-    #   - ./data/redis/:/data/
-    networks:
-      - backend
-    ports:
-      - 6379:6379
-
-networks:
-  backend:
-    driver: bridge

+ 1 - 1
packages/backend/ecosystem.config.js

@@ -2,7 +2,7 @@ module.exports = {
   apps: [
     {
       name: 'helper-backend',
-      exec_mode: 'fork',
+      exec_mode: 'cluster',
       instances: '4',
       script: './dist/main.js',
       args: '',

+ 4 - 1
packages/backend/src/app.module.ts

@@ -54,10 +54,13 @@ import { SessionMiddleware } from '@/common/middleware/session.middleware';
 })
 export class AppModule {
   configure(consumer: MiddlewareConsumer) {
+    consumer.apply(SessionMiddleware).forRoutes({
+      path: '*',
+      method: RequestMethod.ALL,
+    }); // 对所有路由应用中间件
     consumer.apply(HttpLoggerMiddleware).forRoutes({
       path: '*',
       method: RequestMethod.ALL,
     });
-    consumer.apply(SessionMiddleware).forRoutes('*'); // 对所有路由应用中间件
   }
 }

+ 2 - 2
packages/backend/src/common/middleware/session.middleware.ts

@@ -8,12 +8,12 @@ import { RedisService } from '@/shared/redis.service';
 
 @Injectable()
 export class SessionMiddleware implements NestMiddleware {
-  constructor(@Inject(RedisService) private readonly redisService: RedisService) {}
+  constructor(@Inject(RedisService) private readonly redisService: RedisService) { }
 
   use(req: Request, res: Response, next: NextFunction) {
     return session({
       store: new RedisStore({ client: this.redisService.redisClient }), // 使用 Redis 存储 Session
-      secret: 'your-secret-key', // 用于签名 Session ID 的密钥
+      secret: '2129!xxxks', // 用于签名 Session ID 的密钥
       resave: false, // 是否强制保存 Session
       saveUninitialized: false, // 是否保存未初始化的 Session
       cookie: {

+ 1 - 18
packages/backend/src/main.ts

@@ -1,30 +1,13 @@
-/**********************************
- * @Author: Ronnie Zhang
- * @LastEditor: Ronnie Zhang
- * @LastEditTime: 2023/12/07 20:30:13
- * @Email: zclzone@outlook.com
- * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
- **********************************/
 import * as requestIp from 'request-ip';
 import { NestFactory } from '@nestjs/core';
 import { AppModule } from './app.module';
-import * as session from 'express-session';
+// import * as session from 'express-session';
 import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
 import { Logger } from 'nestjs-pino';
 
 async function bootstrap() {
   const app = await NestFactory.create(AppModule, { bufferLogs: true });
   app.use(requestIp.mw());
-  app.use(
-    session({
-      secret: 'isme',
-      name: 'isme.session',
-      rolling: true,
-      cookie: { maxAge: null },
-      resave: false,
-      saveUninitialized: true,
-    }),
-  );
   app.useLogger(app.get(Logger));
   app.flushLogs();
   const config = new DocumentBuilder()

+ 4 - 4
packages/backend/src/modules/auth/auth.controller.ts

@@ -24,11 +24,11 @@ export class AuthController {
     @Body() body: LoginUserDto,
   ) {
     // 预览环境下可快速登录,不用验证码
-    if (this.configService.get('IS_PREVIEW') === 'true' && body.isQuick) {
-      return this.authService.login(req.user, req.session?.code);
-    }
+    // if (this.configService.get('IS_PREVIEW') === 'true' && body.isQuick) {
+    //   return this.authService.login(req.user, req.session?.code);
+    // }
     // 判断验证码是否正确
-    console.log('session', session);
+    // console.log('session', req.user, session, req, body.captcha);
     if (session.code?.toLocaleLowerCase() !== body.captcha?.toLocaleLowerCase()) {
       throw new CustomException(ErrorCode.ERR_10003);
     }