55 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-08-21 15:24:40 +09:00
import { Module } from "@nestjs/common";
import { JwtModule } from "@nestjs/jwt";
import { PassportModule } from "@nestjs/passport";
import { ConfigService } from "@nestjs/config";
2025-08-28 16:57:57 +09:00
import { APP_GUARD } from "@nestjs/core";
2025-08-21 15:24:40 +09:00
import { AuthService } from "./auth.service";
import { AuthZodController } from "./auth-zod.controller";
2025-08-21 15:24:40 +09:00
import { AuthAdminController } from "./auth-admin.controller";
import { UsersModule } from "@bff/modules/users/users.module";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module";
import { IntegrationsModule } from "@bff/integrations/integrations.module";
2025-08-21 15:24:40 +09:00
import { JwtStrategy } from "./strategies/jwt.strategy";
import { LocalStrategy } from "./strategies/local.strategy";
2025-08-28 16:57:57 +09:00
import { GlobalAuthGuard } from "./guards/global-auth.guard";
2025-08-21 15:24:40 +09:00
import { TokenBlacklistService } from "./services/token-blacklist.service";
import { EmailModule } from "@bff/infra/email/email.module";
import { AuthTokenService } from "./services/token.service";
import { SignupWorkflowService } from "./services/workflows/signup-workflow.service";
import { PasswordWorkflowService } from "./services/workflows/password-workflow.service";
import { WhmcsLinkWorkflowService } from "./services/workflows/whmcs-link-workflow.service";
@Module({
imports: [
PassportModule,
JwtModule.registerAsync({
useFactory: (configService: ConfigService) => ({
2025-08-21 15:24:40 +09:00
secret: configService.get("JWT_SECRET"),
signOptions: { expiresIn: configService.get("JWT_EXPIRES_IN", "7d") },
}),
inject: [ConfigService],
}),
UsersModule,
MappingsModule,
IntegrationsModule,
EmailModule,
],
controllers: [AuthZodController, AuthAdminController],
2025-08-28 16:57:57 +09:00
providers: [
AuthService,
JwtStrategy,
LocalStrategy,
TokenBlacklistService,
AuthTokenService,
SignupWorkflowService,
PasswordWorkflowService,
WhmcsLinkWorkflowService,
2025-08-28 16:57:57 +09:00
{
provide: APP_GUARD,
useClass: GlobalAuthGuard,
},
],
exports: [AuthService, TokenBlacklistService],
})
export class AuthModule {}