JWT토큰 ACL 기능 설계중에
payload를 짧게 만들려고 생각하다가 나온 부분
웹사이트 화면이나 API에서 사용할 수 있는 권한의 종류
VIEW READ WRITE MODIFY DELETE EXECUTE
서비스에 따라 좀 다른 형태가 추가될 가능성도 있지만 숫자를 늘리면 된다
Chmod Style
--- user --- r 400 w 200 x 100 --- group --- r 40 w 20 x 10 --- other --- r 4 w 2 x 1
여기서 숫자 규칙은..
어떤숫자 조합을 더해도 중복숫자가 없어야한다.
권한에 숫자 부여
VIEW 1 READ 2 WRITE 4 MODIFY 8 DELETE 16 EXECUTE 32
ex1) VIEW,READ = 3
ex2) READ,MODIFY = 10
이런식으로 1개 늘어날 때 마다 숫자가 2배씩 커지고
필요한 권한을 더해서 숫자로 payload에 넣어주면 된다
숫자를 더 줄일 규칙이 있는지 찾아봐야겠다
간단히 계산하는 법
VIEW, READ, WRITE 다 더해도 MODIFY보다 작다.
권한숫자 = AuthNum = AN
ex1) AN = 16 — 16
큰 숫자부터 하나씩 빼서 -가 되면 다음,
+가 나오면 권한체크
0이 되면 종료
근데 어차피 권한이 많지 않으니 매번 계산하는 것 보다 저장 해 놓고 쓰는게 낫겠다.