RoleGuard
를 잘 사용하고있지만, guard의 특징 중 하나인 execution context
의 장점을 활용하지 못하고있다. 간단하게 설명하자면 execution context
는 애플리케이션 작성 시 도움을 줄 수 있는 유틸리티 클래스를 제공하는 것이다.
이걸 잘 사용하기 위해선 CatController
에서 라우트별로 다른 권한을 가질 수 있게 설정을 해줘야한다.
// cats.controller.ts
@Post()
@SetMetadata('roles', ['admin'])
async create(@Body() createCatDto: CreateCatDto) {
this.catsService.create(createCatDto);
}
여기서 @SetMetadata
데코레이터를 이용하여 쉽게 해결할 수 있다.
이 데코레이터는 metadata를 덧붙일 수 있게 해준다.
최근 프로젝트 집중 기간이라 시간이 부족합니다.. 양해부탁드립니다..