icynet-auth-server/src/app.module.ts

66 lines
2.2 KiB
TypeScript
Raw Normal View History

import {
MiddlewareConsumer,
Module,
NestModule,
RequestMethod,
} from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';
2022-03-16 18:37:50 +00:00
import { ThrottlerModule } from '@nestjs/throttler';
import { join } from 'path';
2022-03-09 18:37:04 +00:00
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CSRFMiddleware } from './middleware/csrf.middleware';
import { UserMiddleware } from './middleware/user.middleware';
import { ConfigurationModule } from './modules/config/config.module';
2022-03-09 18:37:04 +00:00
import { LoginModule } from './modules/features/login/login.module';
import { OAuth2Module } from './modules/features/oauth2/oauth2.module';
import { RegisterModule } from './modules/features/register/register.module';
import { SettingsModule } from './modules/features/settings/settings.module';
import { TwoFactorModule } from './modules/features/two-factor/two-factor.module';
2022-03-09 18:37:04 +00:00
import { DatabaseModule } from './modules/objects/database/database.module';
import { EmailModule } from './modules/objects/email/email.module';
2022-03-09 18:37:04 +00:00
import { OAuth2ClientModule } from './modules/objects/oauth2-client/oauth2-client.module';
import { OAuth2TokenModule } from './modules/objects/oauth2-token/oauth2-token.module';
import { UploadModule } from './modules/objects/upload/upload.module';
import { UserModule } from './modules/objects/user/user.module';
import { UtilityModule } from './modules/utility/utility.module';
@Module({
imports: [
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'uploads'),
serveRoot: '/uploads',
}),
2022-03-16 18:37:50 +00:00
ThrottlerModule.forRoot({
ttl: 10,
limit: 10,
}),
ConfigurationModule,
2022-03-09 18:37:04 +00:00
UtilityModule,
DatabaseModule,
EmailModule,
2022-03-09 18:37:04 +00:00
UserModule,
UploadModule,
OAuth2ClientModule,
OAuth2TokenModule,
LoginModule,
RegisterModule,
OAuth2Module,
2022-03-09 20:03:29 +00:00
TwoFactorModule,
SettingsModule,
2022-03-09 18:37:04 +00:00
],
controllers: [AppController],
providers: [AppService, CSRFMiddleware],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(CSRFMiddleware, UserMiddleware)
.exclude(
{ path: 'uploads*', method: RequestMethod.ALL },
{ path: 'public*', method: RequestMethod.ALL },
)
.forRoutes('*');
2022-03-09 18:37:04 +00:00
}
}