Skip to content

feat: add admin access code entry - #171

Open
subir-sh wants to merge 3 commits into
devfrom
feat/admin-page-without-login
Open

feat: add admin access code entry#171
subir-sh wants to merge 3 commits into
devfrom
feat/admin-page-without-login

Conversation

@subir-sh

@subir-sh subir-sh commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

1. 어떤 기능을 구현했는지

  • /sync 어드민 페이지 진입 시 유효한 admin JWT가 없으면 access code 입력 화면을 보여주도록 했습니다.
  • access code가 맞으면 백엔드에서 admin JWT를 받아 별도 저장하고 기존 어드민 화면으로 진입합니다.
  • 어드민 화면에서 로그아웃하면 admin JWT만 제거하고 access code 입력 화면으로 돌아갑니다.
  • 일반 사용자 JWT와 admin JWT는 동시에 유지되며 서로 덮어쓰지 않습니다.

2. 뭘 바꿨는지

  • adminAuth API 클라이언트와 admin 전용 axios 클라이언트를 추가했습니다.
  • adminAccessToken 전용 저장소를 추가하고 /api/v1/admin/** 요청에만 해당 토큰을 붙이도록 했습니다.
  • AdminAccessAdminRoute가 일반 TokenService 대신 admin 토큰 저장소를 사용하도록 변경했습니다.
  • AdminEvents 상단에 admin 토큰만 지우는 로그아웃 버튼을 추가했습니다.
  • JWT payload를 base64url로 파싱해 exp, isAdmin을 확인하도록 했습니다.
  • /admin/auth/session 요청은 일반 Authorization/refresh interceptor 대상에서 제외했습니다.

3. 왜 그렇게 했는지

  • 일반 계정 로그인 없이도 운영자가 빠르게 어드민 페이지에 들어갈 수 있게 하기 위해서입니다.
  • access code 검증은 백엔드가 담당하고, 발급된 admin JWT는 admin API 호출에만 사용하도록 분리해 일반 사용자 세션과 충돌하지 않게 했습니다.
  • 별도 백엔드 세션 모델을 새로 만들지 않고 기존 admin JWT 인가 흐름을 그대로 재사용해 변경 범위를 줄였습니다.

Checks

  • corepack yarn biome check src/api/adminAxios.ts src/api/adminTokenService.ts src/api/adminAuth.ts src/api/adminEvent.ts src/pages/AdminAccess.tsx src/router/AdminRoute.tsx
  • corepack yarn build

@subir-sh
subir-sh marked this pull request as ready for review July 29, 2026 14:01
@subir-sh

Copy link
Copy Markdown
Contributor Author

conflict 해결하겠습니다 ;;

@subir-sh

Copy link
Copy Markdown
Contributor Author

로컬 테스트 결과 잘 됩니다! 아 생각해보니 access code 말씀 안 드렸네요, 이거 디코에서 물어보시면 알려드릴게요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants