feat(dev): VITE_ENABLE_DEV_ROUTES 로 비-로컬호스트에서도 /dev/*·/test 허용
스테이징/IP 서버 빌드에서 디버그 라우트를 켤 수 있게 env flag 추가. 운영 빌드는 false 로 유지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>main
parent
7fb1831c91
commit
e04e8af798
|
|
@ -5,3 +5,7 @@ VITE_API_BASE_URL=http://localhost:8001
|
|||
|
||||
# 백엔드 API 키 — 모든 요청에 x-api-key 헤더로 전송
|
||||
VITE_API_KEY=
|
||||
|
||||
# 'true' 로 설정 시 비-로컬호스트 환경(스테이징/IP 서버 등)에서도 /dev/* 와 /test 라우트 허용
|
||||
# 운영(production) 에는 절대 'true' 로 두지 말 것
|
||||
VITE_ENABLE_DEV_ROUTES=false
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
/**
|
||||
* DevOnly — `/dev/*` 라우트 가드.
|
||||
*
|
||||
* `window.location.hostname` 이 로컬호스트 계열이 아닐 경우 루트로 리다이렉트.
|
||||
* 허용 조건:
|
||||
* - 빌드 시 `VITE_ENABLE_DEV_ROUTES=true` 가 설정된 경우, 또는
|
||||
* - `window.location.hostname` 이 로컬호스트 계열인 경우.
|
||||
* 그 외에는 루트로 리다이렉트.
|
||||
*
|
||||
* 클라이언트 사이드 가드라 보안 의미보다는 "운영 도메인에서 실수로 노출되는 것 방지" 용도.
|
||||
* 진짜 차단이 필요하면 서버/CDN 레벨에서 경로를 막아야 한다.
|
||||
*/
|
||||
|
|
@ -20,8 +24,12 @@ function isLocalHost(): boolean {
|
|||
return LOCAL_HOSTNAMES.has(window.location.hostname);
|
||||
}
|
||||
|
||||
function isDevRoutesEnabled(): boolean {
|
||||
return import.meta.env.VITE_ENABLE_DEV_ROUTES === 'true';
|
||||
}
|
||||
|
||||
export default function DevOnly() {
|
||||
if (!isLocalHost()) {
|
||||
if (!isDevRoutesEnabled() && !isLocalHost()) {
|
||||
return <Navigate to="/" replace />;
|
||||
}
|
||||
return <Outlet />;
|
||||
|
|
|
|||
Loading…
Reference in New Issue