Skip to content

[Feature] 실제 로그인·인증 연동 (fowoco/server /api/v1/auth/*) #101

Description

@BcKmini

배경

fowoco/server에 인증 API가 이미 구현·병합돼 있다 (PR #33, #35). 다른 도메인(근로자/업무/서류/티켓/승인) API는 아직 서버에 없어서, 지금 실제로 연동 가능한 건 인증뿐이다.

서버 계약 요약 (ADR-0002 기준)

API 요청 성공 실패
POST /api/v1/auth/login JSON email, password 200 + {user_id, company_id, company_name, role, access_token, token_type, expires_in_seconds, expires_at}, Refresh Token은 HttpOnly 쿠키로 별도 전달 401 INVALID_CREDENTIALS
POST /api/v1/auth/refresh HttpOnly 쿠키만 사용, body 없음 200 + 새 access_token, 쿠키 회전 401 INVALID_REFRESH_TOKEN
POST /api/v1/auth/logout 쿠키만 사용 204, 쿠키 폐기 -
GET /api/v1/auth/me Authorization: Bearer 200 + {user_id, company_id, roles} 401 AUTHENTICATION_REQUIRED

완료 조건

  • authStore.login을 데모 계정 문자열 비교 대신 POST /api/v1/auth/login 실제 호출로 교체 (#100의 공통 API 클라이언트 사용)
  • Access Token은 메모리(Zustand)에만 보관, Refresh Token은 서버가 설정하는 HttpOnly 쿠키를 그대로 사용 (credentials: 'include', 프론트에서 원문을 다루지 않음)
  • 새로고침 시 GET /api/v1/auth/me로 세션 복원 시도 — 지금까지 "로그인 상태 영속화는 백엔드 세션/토큰 방식 확정 후 진행"으로 미뤄뒀던 항목의 실제 구현
  • POST /api/v1/auth/logout 연동
  • 401 발생 시 #100에서 만든 refresh 재시도 로직 사용
  • role 값(ADMIN/HR/VIEWER)을 화면 표시(user.role)에 반영 — 지금 데모는 HR 고정
  • 테스트 작성 (로그인 성공/실패, 새로고침 세션 유지, 로그아웃, 401 재시도)

확인 필요

  • 데모 계정(mini@naver.com / 1234)이 서버 DB에 실제로 seed돼 있는지 백엔드팀 확인 필요 — 없으면 로그인 화면·도움말 모달의 데모 계정 안내를 실제 seed 계정으로 교체해야 함

의존성

#100 공통 API 클라이언트 레이어가 먼저 필요해 status:blocked로 표시. #100 완료 후 진행.

Metadata

Metadata

Assignees

Labels

area:auth로그인·권한 화면priority:P2일정에 따라 미룰 수 있는 작업status:ready범위가 확정되어 바로 시작 가능type:feature사용자 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions