import { Module } from '@nestjs/common'; import { APP_GUARD } from '@nestjs/core'; import { MailModule } from '../mail/mail.module'; import { PondsModule } from '../ponds/ponds.module'; import { UsersModule } from '../users/users.module'; import { AuthController } from './auth.controller'; import { AuthGuard } from './auth.guard'; import { AuthService } from './auth.service'; import { AuthTokensService } from './auth-tokens.service'; import { SessionsModule } from './sessions.module'; @Module({ imports: [UsersModule, MailModule, SessionsModule, PondsModule], controllers: [AuthController], providers: [ AuthService, AuthTokensService, // Global default-protected: every route needs a session unless it // opts out with @Public(). { provide: APP_GUARD, useClass: AuthGuard }, ], exports: [AuthTokensService, AuthService], }) export class AuthModule {}