import { ConfigService } from '@nestjs/config';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AuthConfig extends AbstractBuilderNestjsConfig implements IAuthConfig {
public issuer: URL;
public constructor(private readonly configService: ConfigService) {
this.issuer = this.configService.get('ISSUER');
}
}
import { Request, Response, NextFunction } from 'express';
import { Injectable, NestMiddleware } from '@nestjs/common';
@Injectable()
export class AuthMiddleware implements NestMiddleware {
public constructor(private readonly config: AuthConfig) {}
public use(req: Request, res: Response, next: NextFunction): void {
...
}
}
import { Module } from '@nestjs/common';
import { AuthConfig } from './auth.config';
import { AuthMiddleware } from './auth.middleware';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ConfigModule.forRoot()],
providers: [AuthConfig, AuthMiddleware],
exports: [AuthConfig, AuthMiddleware],
})
export class AuthModule {}