[TIL] NestJS 공부 33일차
권한
이번에 프로젝트 진행시에도 사용되는 기능이다. 사실 대부분의 사이트에서 있어야만하는 기능이긴하다. 학교에선 선생님과 학생, 회사에선 관리자와 회사원들의 목적이 다르기 때문이다. 하지만 나는 그런 기능을 잘 몰랐고 그냥 jwt에 역할을 추가해서 확인하는 방법을 선택했다. 다른 방법을 확인해보자.
RBAC(역할 기반 액세스 제어)
역할 및 권한에 대한 제어 매커니즘으로 가드를 사용하여 구현한다.
우선, 역할에 대한 enum을 만들자.
enums/role.enum.ts
경로에 위 코드를 작성하자.
이 후, 만들어진 열거형 파일을 이용하여 데코레이터를 만들자.
decorator
폴더 안에 roles.decorator.ts
파일을 만들어서 @Roles
데코레이터로 사용할 수 있게 만들자.
이제는 역할 비교를 할 수 있게 만드는 RolesGuard
클래스를 만들자.
안에 있는 canActicate()
에서 관련 역할을 가지고 오고 권한이 맞는지 확인하는 것 같은데 우선 Reclector에 대해 확실히 짚고 넘어가야할 것 같다.
어쨌든 이걸 사용하려면 User
클래스는 아래의 역할을 정해주고 클래스를 전역 선언해주면 사용할 수 있다.
Reflector는 내일 자세하게 공부해보자,
class User {
// ...other properties
roles: Role[];
}
providers: [
{
provide: APP_GUARD,
useClass: RolesGuard,
},
],
Author And Source
이 문제에 관하여([TIL] NestJS 공부 33일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ingyocode/TIL-NestJS-공부-33일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)