Nest Swagger 2. Swagger 사용 방법 [ 비밀번호 생성 ]

2022. 4. 20. 16:14Nest.js

실제 Production에서 Swagger를 아무나 접속을 할 수 있게 하면 큰 보안적 위험이있다. 그래서 

로그인을 비밀번호를 만들어서 접근을 제한 해야한다.

 

1. 설치 

npm i express-basic-auth

 

2. 사용 방법

접근하는 아이디, 비밀번호는 .env  환경변수에 저장한다

.env 파일 사용 방법 : https://crispypotato.tistory.com/194

 

main.ts에서 express-basic-auth를 import해서 사용한다.

 

///main.ts

import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { AppModule } from './app.module';
// express-basic-auth import
import * as expressBasicAuth from 'express-basic-auth';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalPipes(new ValidationPipe());
  
  // 추가 부분
  app.use(
    ['/docs'],
    expressBasicAuth({
      challenge: true,
      users: { [process.env.SWAGGER_USER]: process.env.SWAGGER_PWD },
    }),
  );
  
  const config = new DocumentBuilder()
    .setTitle('000APi')
    .setDescription('000APi')
    .setVersion('0.0.0')
    .build();
  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('docs', app, document);
  await app.listen(process.env.PORT);
}

 

 

728x90
반응형