fix: 세션 로그인 시 포트폴리오 화면 갱신 안 됨 — MULTI_TENANT_ENABLED=false면 v1 API 사용
세션 로그인 사용자는 프론트가 v2(/portfolio/v2)를 쓰는데, 멀티테넌트가 꺼져 있으면 v2 컨텍스트가 legacy로 떨어져 KIS 동기화 없이 DB 스냅숏만 반환 → 현재가·손익이 갱신되지 않음. /auth/me 에 multi_tenant_enabled 를 추가하고, 프론트는 세션 로그인 AND 플래그 true 일 때만 v2 사용. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
* - `GET /auth/me`로 호출 주체(auth_type)를 확인해 포트폴리오·거래이력·매수/매도가
|
||||
* 사용자 스코프 v2 API(`/portfolio/v2`, `/trades/v2`)를 쓸지, 기존 v1 API를
|
||||
* 쓸지 결정한다.
|
||||
* - auth_type === 'session' (로그인 사용자) → v2
|
||||
* - auth_type === 'session' (로그인 사용자) AND 백엔드 multi_tenant_enabled=true → v2
|
||||
* - auth_type === 'api_key' (레거시 운영자 API 키, MULTI_TENANT_ENABLED=false 환경 포함)
|
||||
* → legacy(v1). 백엔드도 이 경우 `/portfolio/v2/sync`를 스킵 응답하므로 v1 그대로 사용해야 한다.
|
||||
*
|
||||
@@ -24,6 +24,8 @@ export interface AuthMe {
|
||||
username: string
|
||||
auth_type: 'session' | 'api_key'
|
||||
is_admin: boolean
|
||||
/** 백엔드 MULTI_TENANT_ENABLED. 구버전 백엔드는 필드가 없음(undefined) → legacy 취급 */
|
||||
multi_tenant_enabled?: boolean
|
||||
}
|
||||
|
||||
/** 'v2' | 'legacy' 확정 전(로딩 중·조회 실패)에는 undefined */
|
||||
@@ -46,7 +48,10 @@ export const useTenantMode = () => {
|
||||
|
||||
const mode: TenantMode = isLoading || error || !me
|
||||
? undefined
|
||||
: me.auth_type === 'session' ? 'v2' : 'legacy'
|
||||
// 세션 로그인이어도 백엔드 멀티테넌트가 꺼져 있으면 v2 컨텍스트는 legacy로
|
||||
// 떨어져 /portfolio/v2 가 KIS 동기화 없는 DB 스냅숏만 돌려준다(화면 갱신 안 됨).
|
||||
// → MULTI_TENANT_ENABLED=true 인 경우에만 v2 사용.
|
||||
: me.auth_type === 'session' && me.multi_tenant_enabled === true ? 'v2' : 'legacy'
|
||||
|
||||
return { mode, me, isLoading, error }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user