import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { Environment } from '../../config/env.validation'; import { AuthService } from './application/auth.service'; import { JwtStrategy } from './infrastructure/jwt.strategy'; import { AuthController } from './presentation/auth.controller'; import { JwtAuthGuard } from './presentation/jwt-auth.guard'; @Module({ imports: [ PassportModule, JwtModule.registerAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (config: ConfigService) => ({ secret: config.getOrThrow('JWT_SECRET'), }), }), ], exports: [JwtAuthGuard], controllers: [AuthController], providers: [AuthService, JwtStrategy, JwtAuthGuard], }) export class AuthModule {}