웹 개발/백엔드
[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
팝업창에서 사용할 계정을 입력해준다.
예제에서는 임시로 하드코딩 했지만 실제로는 환경변수 등 안전하게 관리해야한다.
● 인증팝업
위 사진처럼 계정을 입력하도록 팝업창이 발생한다.
반응형