import { Module } from '@nestjs/common'; import { AuthService } from './auth.service'; import { UsersModule } from 'src/users/users.module'; import { PassportModule } from '@nestjs/passport'; import { AuthController } from './auth.controller'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { JwtOptions } from './jwt.options'; import { JwtAccessStrategy } from './strategies/jwt-access.strategy'; import { AuthRefreshService } from './auth.refresh.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AuthRefreshTokenEntity } from './entities/auth.refresh-token.entity'; import { AuthAccessService } from './auth.access.service'; import { JwtRefreshStrategy } from './strategies/jwt-refresh.strategy'; @Module({ imports: [ TypeOrmModule.forFeature([AuthRefreshTokenEntity]), ConfigModule, UsersModule, PassportModule.register({ session: false }), JwtModule.registerAsync({ imports: [ConfigModule], extraProviders: [ConfigService], useClass: JwtOptions, }), ], exports: [ AuthAccessService, AuthRefreshService, AuthService, ], providers: [ AuthAccessService, AuthRefreshService, AuthService, JwtAccessStrategy, JwtRefreshStrategy, ], controllers: [AuthController] }) export class AuthModule { }