Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- s3
- typeorm
- AWS
- CloudFront
- nestjs
- docker
- code-server
- Python
- ACM
- riotapi
- 롤
- 전역스타일
- GlobalStyle
- route53
- e.preventDefault()
- 카카오 로그인
- Object.freeze()
- requests
- 배포
- styled-component
- Django
- mysqlclient
- Recoil
- liunx
- e.stopPropagation()
- ci/cd
- 리액트
- React
- 자바스크립트
- Github Actions
Archives
- Today
- Total
군붕이의 메모장
[Nest.js] Swagger API 문서에 로그인 설정하기 본문
반응형
실제 배포된 프로덕션 환경에서는 일반 유저가 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
팝업창에서 사용할 계정을 입력해준다.
예제에서는 임시로 하드코딩 했지만 실제로는 환경변수 등 안전하게 관리해야한다.
● 인증팝업
위 사진처럼 계정을 입력하도록 팝업창이 발생한다.
반응형
'웹 개발 > 백엔드' 카테고리의 다른 글
[Nest.js] AWS Parameter Store를 통해 환경변수 관리하기 (1) | 2023.07.08 |
---|---|
[Nest.js] euc-kr 인코딩 변환하기 (0) | 2023.06.28 |
[Nest.js] Nest.js에서 사용자 인증 처리하기 with Passport (0) | 2023.03.12 |
Node.js AWS S3 이미지 업로드하기 feat. AWS-SDK v3 (0) | 2023.02.27 |
[Django] Ubuntu 18.04 에서 mysqlclient 설치오류 해결방법 (0) | 2021.07.18 |