/
auth.module.ts
44 lines (43 loc) · 1.46 KB
/
auth.module.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { Module } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { SecurityConfig } from 'src/common/config';
import { AuthService } from './auth.service';
import { PasswordService } from './password/password.service';
import { JwtStrategy } from './strategies/jwt.strategy';
import { AuthController } from './auth.controller';
import { GoogleStrategy } from './strategies/google.strategy';
import { EventsJwtStrategy } from './strategies/events-jwt.strategy';
import { StripeService } from 'src/stripe/stripe.service';
import { UserService } from './user/user.service';
import { UserController } from './user/user.controller';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.registerAsync({
useFactory: async (configService: ConfigService) => {
const securityConfig = configService.get<SecurityConfig>('security');
return {
secret: configService.get<string>('JWT_ACCESS_SECRET'),
signOptions: {
expiresIn: securityConfig.expiresIn,
},
};
},
inject: [ConfigService],
}),
],
providers: [
AuthService,
JwtStrategy,
EventsJwtStrategy,
GoogleStrategy,
PasswordService,
StripeService,
UserService,
],
controllers: [AuthController, UserController],
exports: [UserService],
})
export class AuthModule {}