import { Module } from '@nestjs/common';
import { AuthService } from './auth.service';
import { AuthController } from './auth.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from '@app/models';
import { JwtModule } from '@nestjs/jwt';
import { UserModule } from '../user/user.module';
import { RedisService } from '../../libs/redis/redis.service';
import { RedisModule } from '../../libs/redis/redis.module';
import { TokenService } from './token.service';
import { JwtModule as SelfJwtModule } from '@app/jwt';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
controllers: [AuthController],
providers: [AuthService, RedisService, TokenService],
exports: [AuthService, TokenService],
imports: [
TypeOrmModule.forFeature([User]),
ConfigModule,
SelfJwtModule.registerAsync({
isGlobal: true,
imports: [ConfigModule],
inject: [ConfigService],
useFactory(cfg: ConfigService){
return {
secrect: cfg.get('AUTH_SECRET')
}
}
}),
JwtModule.registerAsync({
imports: [RedisModule],
useFactory: async () => ({
secret: process.env.AUTH_SECRET,
global: true,
signOptions: {
expiresIn: process.env.EXPIRES_IN,
},
}),
global: true,
}),
UserModule
],
})
export class AuthModule {}