군붕이의 메모장

[Nest.js] Swagger API 문서에 로그인 설정하기 본문

웹 개발/백엔드

[Nest.js] Swagger API 문서에 로그인 설정하기

초보군붕이 2023. 5. 26. 21:01
반응형

실제 배포된 프로덕션 환경에서는 일반 유저가 API 문서에 접근하면 보안적인 문제가 발생할수 있다.

 

API 문서에 접근하는것을 차단하기위해서 로그인, 토큰인증 등 다양한 방법이 존재한다.

 

그 중에서도 아주 간단하게 express-basic-auth를 활용한 로그인된 유저에게만 API 문서에 접근권한 부여가 가능하다.

 

해당 라이브러리 이외에 요구사항에 따라 미들웨어를 제작해서 /api 요청에 대한 접근 컨트롤이 가능할것이다.

 

● express-basic-auth 설치

npm i express-basic-auth

 

express-basic-auth 활성화

import * as expressBasicAuth from 'express-basic-auth';

async function bootstrap() {
  const app = { ... }

  /** Swagger 문서 보안을 위한 계정등록 */
  app.use(
    '/api',
    expressBasicAuth({
      challenge: true,
      users: { admin: '1234' },
    }),
  );

  await app.listen(...);
}

bootstrap();

expressBasicAuth에 들어가는 옵션에 대한 설명은 아래와 같다.

 

 

challenge

해당 옵션에 true를 설정하게되면 credentials를 입력하기 위한 팝업창이 뜨게된다.

 

users

팝업창에서 사용할 계정을 입력해준다.

예제에서는 임시로 하드코딩 했지만 실제로는 환경변수 등 안전하게 관리해야한다.

 

 

 인증팝업

위 사진처럼 계정을 입력하도록 팝업창이 발생한다.

반응형