import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { UsersModule } from '@/users/users.module'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { JwtStrategy } from './strategy/jwt.strategy'; import { LocalStrategy } from './strategy/local.strategy'; @Module({ imports: [ ConfigModule, UsersModule, PassportModule, JwtModule.registerAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: async (configService: ConfigService) => ({ secret: configService.get('auth.jwtSecret'), signOptions: { expiresIn: `${configService.get('auth.jwtExpiryTime')}s`, }, }), }), ], providers: [AuthService, LocalStrategy, JwtStrategy], controllers: [AuthController], exports: [AuthService], }) export class AuthModule {}