diff --git a/mycarvalue/src/app.module.ts b/mycarvalue/src/app.module.ts index 6f44630..1040070 100644 --- a/mycarvalue/src/app.module.ts +++ b/mycarvalue/src/app.module.ts @@ -7,7 +7,7 @@ import { ReportsModule } from './reports/reports.module'; import { User } from './users/user.entity'; import { Report } from './reports/report.entity'; import { ConfigModule, ConfigService } from '@nestjs/config'; -import cookieSession from 'cookie-session'; +const cookieSession = require('cookie-session'); @Module({ imports: [ @@ -33,12 +33,10 @@ import cookieSession from 'cookie-session'; }) export class AppModule { configure(consumer: MiddlewareConsumer) { - consumer - .apply( - cookieSession({ - keys: ['asdfasdf'], - }), - ) - .forRoutes('*'); + consumer.apply( + cookieSession({ + keys: ['mysecret'], + }), + ); } } diff --git a/mycarvalue/src/main.ts b/mycarvalue/src/main.ts index f86ff7c..272c445 100644 --- a/mycarvalue/src/main.ts +++ b/mycarvalue/src/main.ts @@ -36,7 +36,7 @@ async function bootstrap() { // app.use(cookieParser()); - app.use(cookieSession({ keys: ['mysecret'] })); + // app.use(cookieSession({ keys: ['mysecret'] })); app.useGlobalPipes( new ValidationPipe({ diff --git a/mycarvalue/src/users/middlewares/current-user.middleware.ts b/mycarvalue/src/users/middlewares/current-user.middleware.ts new file mode 100644 index 0000000..b90302b --- /dev/null +++ b/mycarvalue/src/users/middlewares/current-user.middleware.ts @@ -0,0 +1,18 @@ +import { Injectable, NestMiddleware } from '@nestjs/common'; +import { Request, Response, NextFunction } from 'express'; +import { UsersService } from '../users.service'; + +@Injectable() +export class CurrentUserMiddleware implements NestMiddleware { + constructor(private userService: UsersService) {} + + async use(req: Request, res: Response, next: NextFunction) { + const { userId } = req.session || {}; + if (userId) { + const user = await this.userService.findOne(userId); + // @ts-ignore + req.currentUser = user; + } + next(); + } +} diff --git a/mycarvalue/src/users/users.module.ts b/mycarvalue/src/users/users.module.ts index 9e8f9aa..94a8ad4 100644 --- a/mycarvalue/src/users/users.module.ts +++ b/mycarvalue/src/users/users.module.ts @@ -1,24 +1,19 @@ -import { Module } from '@nestjs/common'; +import { Module, MiddlewareConsumer } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { UsersController } from './users.controller'; import { UsersService } from './users.service'; import { User } from './user.entity'; import { AuthService } from './auth.service'; -import { CurrentUserInterceptor } from './interceptors/current-user-intetrceptor'; -import { APP_INTERCEPTOR } from '@nestjs/core'; +import { CurrentUserMiddleware } from './middlewares/current-user.middleware'; @Module({ imports: [TypeOrmModule.forFeature([User])], controllers: [UsersController], - providers: [ - UsersService, - AuthService, - CurrentUserInterceptor, - //Globally scoped interceptor - { - provide: APP_INTERCEPTOR, - useClass: CurrentUserInterceptor, - }, - ], + providers: [UsersService, AuthService], }) -export class UsersModule {} +export class UsersModule { + // This is a middleware that will be applied to all routes + configure(consumer: MiddlewareConsumer) { + consumer.apply(CurrentUserMiddleware).forRoutes('*'); + } +}