docs(bo-auth): add renewal auth and authorization specification#4
docs(bo-auth): add renewal auth and authorization specification#4Menstear wants to merge 2 commits intoquipu-uos:mainfrom
Conversation
There was a problem hiding this comment.
백오피스에서 슈퍼 어드민의 초대 플로우 관련 구현 계획이 누락된 거 같습니다. 예시를 보여드리겠습니다. 아래를 참고해서 추가 부탁드립니다.
- 슈퍼어드민이 이메일 1개 입력 → 그 이메일 전용 초대 링크 1개 생성
- 이메일 하나당 초대 링크 하나
- 초대 링크 만료 시간(예: 2일) 포함
- 사용자가 초대 링크 접속 후 Google 로그인
- 로그인 이메일 == 초대 이메일이면 승인
- 이때 google_sub 바인딩
- 이후 로그인은 google_sub 기준
There was a problem hiding this comment.
백오피스와 메인 웹의 DB는 앞으로 mysql이 아닌 mongodb로 통일하려 합니다. 문서의 내용은 기존 사용 스펙인 sequelize로 되어 있는데, mongodb 용도로 다시 생각해보시면 좋을거 같아요!
There was a problem hiding this comment.
기본 백오피스도 세션 쿠키 인증 방식인데, 저희가 프론트엔드와 백엔드의 도메인이 다릅니다(크로스 도메인). 그래서 결국 사파리에서는 백오피스를 사용하지 못했던 기억이 있습니다.
이를 해결하기 위해 혹시 Authorization 기반으로 변경하는 건 어떤지 검토 부탁드립니다.
There was a problem hiding this comment.
write/club-info 라벨도 필요해 보입니다.
또 권한 모델을 더 단순하고 확장성 있게 가져가면 좋을 것 같습니다.
현재 문서는 각 유저와 라벨을 조인하는 방식인데, 다음에 라벨이 늘어나면 코드가 복잡해집니다.
아래 방법을 참고해주세요.
-
라벨을 정수(
perm)로 관리READ=1,WRITE_ACTIVITY=2,WRITE_RECRUIT_FORM=4,WRITE_CLUB_INFO=8- 라벨 추가 시 2의 제곱 비트만 계속 확장하면 됩니다.
-
권한 체크 로직
- Activity 수정 가능 여부:
(perm & WRITE_ACTIVITY) !== 0 - 여러 권한 동시 필요 시:
(perm & REQUIRED_MASK) === REQUIRED_MASK
- Activity 수정 가능 여부:
-
기본 권한 및 권한 추가
- 초대 계정 생성 시
READ를 기본 부여 - 이후 기능별 write 권한만 비트 추가(
OR)
- 초대 계정 생성 시
이런 식으로 내부 저장만 비트마스크로 단순화하고, 화면은 기존 라벨 형태로 보여주면 됩니다.
There was a problem hiding this comment.
슈퍼어드민 판단 기준이 두 개로 보입니다.
- 환경변수에 저장한 이메일
- DB 내
is_super_admin값
슈퍼어드민 판단 로직은 하나로 통일했으면 합니다.
예를 들면 아래와 같은 방식이 있습니다.
- 백엔드 서버 시작 시 env의 이메일로 슈퍼어드민을 지정(DB에
is_super_admin=true) - 런타임 슈퍼어드민 판단은 항상 DB의
is_super_admin값만 사용
개요
2026-renewal/feature/01-bo-auth.md문서를 작성/보강했습니다.백오피스 인증 및 권한 체계 고도화(Feature Roadmap #1) 구현을 위한 기준 명세입니다.
포함 내용
read/allwrite/allwrite/activitywrite/recruit-form보안 보강
아래 항목을
보안 필수 체크리스트(출시 게이트)로 명시했습니다.state검증google_sub기반 사용자 식별session.regenerate()적용변경 파일
2026-renewal/feature/01-bo-auth.md비고