Listory/src/auth/auth.module.ts

45 lines
1.6 KiB
TypeScript
Raw Normal View History

2020-09-05 23:35:53 +02:00
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
2020-02-01 16:11:48 +01:00
import { ConfigService } from "@nestjs/config";
import { JwtModule } from "@nestjs/jwt";
import { PassportModule } from "@nestjs/passport";
2020-09-05 23:35:53 +02:00
import { CookieParserMiddleware } from "../cookie-parser";
2022-06-25 13:48:25 +00:00
import { TypeOrmRepositoryModule } from "../database/entity-repository/typeorm-repository.module";
2020-02-01 16:11:48 +01:00
import { UsersModule } from "../users/users.module";
2020-09-05 23:35:53 +02:00
import { AuthSessionRepository } from "./auth-session.repository";
2020-02-01 16:11:48 +01:00
import { AuthController } from "./auth.controller";
import { AuthService } from "./auth.service";
2020-09-05 23:35:53 +02:00
import { AccessTokenStrategy } from "./strategies/access-token.strategy";
import { RefreshTokenStrategy } from "./strategies/refresh-token.strategy";
import { SpotifyStrategy } from "./strategies/spotify.strategy";
2020-02-01 16:11:48 +01:00
@Module({
imports: [
2022-06-25 13:48:25 +00:00
TypeOrmRepositoryModule.for([AuthSessionRepository]),
2020-02-01 16:11:48 +01:00
PassportModule.register({ defaultStrategy: "jwt" }),
JwtModule.registerAsync({
useFactory: (config: ConfigService) => ({
secret: config.get<string>("JWT_SECRET"),
2020-05-03 20:57:03 +02:00
signOptions: {
expiresIn: config.get<string>("JWT_EXPIRATION_TIME"),
algorithm: config.get("JWT_ALGORITHM"),
},
2020-02-01 16:11:48 +01:00
}),
2020-05-02 17:17:20 +02:00
inject: [ConfigService],
2020-02-01 16:11:48 +01:00
}),
2020-05-02 17:17:20 +02:00
UsersModule,
2020-02-01 16:11:48 +01:00
],
2020-09-05 23:35:53 +02:00
providers: [
AuthService,
SpotifyStrategy,
AccessTokenStrategy,
RefreshTokenStrategy,
],
2020-02-01 16:11:48 +01:00
exports: [PassportModule],
2020-05-02 17:17:20 +02:00
controllers: [AuthController],
2020-02-01 16:11:48 +01:00
})
2020-09-05 23:35:53 +02:00
export class AuthModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(CookieParserMiddleware).forRoutes("api/v1/auth");
}
}