일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C
- 화장품
- 다독
- 성분
- 서평
- 알고리즘공부
- 자바
- 독서
- 채권
- 알고리즘트레이닝
- 재테크
- 자바스크립트
- 독후감
- 프로그래밍언어
- 지혜를가진흑곰
- Java
- 책알남
- JavaScript
- C++
- 백준알고리즘
- 투자
- 책을알려주는남자
- algorithmtraining
- algorithmStudy
- algorithmTest
- 프로그래머스 알고리즘 공부
- 경제
- 알고리즘 공부
- 주식
- 돈
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[NestJS] Controller 단에서 @UseGuards 사용안했는데 Get요청이 401 Unauthorized 해결방법 본문
[Snow-ball]server/NestJS
[NestJS] Controller 단에서 @UseGuards 사용안했는데 Get요청이 401 Unauthorized 해결방법
Snow-ball 2022. 12. 8. 13:00반응형
최근에 프로젝트가 NestJS로 만들고 있으면서 백단을 구축하고 있다. 하지만, @Get('/')요청으로 Board들의 list 를 불러오기위해 컨트롤러 단에서 @UseGuards를 사용하지 않았는데도 불구하고, Response가 Unauthorized가 발생했다.
물론, 내가 실수를 한부분이 있는지 확인을 했지만 없었다. 혹시 몰라서 @Post로 요청을 해봤더니 정상적으로 동작을 하게 됬다. 이게 뭐지?? 고민을 하고 개선을 해보다가 혹시나 해서 @Get('/)요청을 맨위로 올렸더니 정상적으로 작동이 됬다.
그래서 몇가지 테스트를 했더니 @UseGuards가 없는 컨트롤러단은 위에 2개까지 있을때는 @Get 요청을 했을 경우 401 Unauthorized가 발생하지 않았다.
결론적으로는, @UseGuards가 없는 컨트롤러들은 제일 상위에 두고 작업하는것이 정신적으로 평화로울 것이다.
그래도 글보다는 짧게 예시를 들어보자. 물론 예시이기 때문에 가독성을 위해서 필요없는 @(어노테이션) 및 코드들은 다 제거했다.
Best EX)
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
|
@Controller('/boards')
export class BoardsController {
@Get('/')
private async list(){}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Post('/register')
private async register() {}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Delete('/:id')
private async delete() {}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Get('/:id')
private async read() {}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Patch('/update')
private async update(){}
}
|
cs |
허용되는 EX)
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
|
@Controller('/boards')
export class BoardsController {
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Post('/register')
private async register() {}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Delete('/:id')
private async delete() {}
@Get('/')
private async list(){}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Get('/:id')
private async read() {}
@UseGuards(AccessTokenGuard)
@ApiBearerAuth('access_token')
@Patch('/update')
private async update(){}
}
|
cs |
이외에도 다른 방법이 있을 수 있다. 하지만 내가 확인한 방법은 이정도 였다. 사실 이렇게 만든 의도가 있을까? 궁금하기도 하지만, 이런 이슈에는 깊이 들어갈 필요가 없는듯하다. 개인적으로는 NestJS개발자의 의도안된 오류가 아닐까? 싶다..
반응형
'[Snow-ball]server > NestJS' 카테고리의 다른 글
[Nest.js] 네스트js websocket 에러 (0) | 2023.05.24 |
---|---|
[Nest.js] 스웨거 사용시 순환 참조 에러(enum 사용할 경우) (0) | 2023.03.27 |
[NestJS] Cannot read properties of undefined (reading '__garde__') ERROR (0) | 2023.02.19 |
[NestJS] 유닛 테스트(Unit Testing) 간단한 사용방법 코드 정리 (0) | 2023.02.01 |
[NestJS] OVERVIEW - First steps (개요 - 첫걸음) (0) | 2022.11.11 |
Comments