gateway.crowny.org 통합 회원사이트 구성
개요
gateway.crowny.org를 "랜딩 공개 + 회원영역 게이트" 구조의 통합 사이트로 만들었다.
랜딩(/)은 그대로 공개, /dashboard(모니터)와 신규 /members(회원 포털)만 회원 인증 게이트(auth: member) 대상으로 gateway.yaml에 선언했다.
무엇을 했는지
- gateway.yaml — authPaths 추가 (
crowny-gateway-monitor, domain: gateway.crowny.org 블록)
yaml authPaths:
- prefix: /dashboard
auth: member
- prefix: /members
auth: member
기존 pathRoutes(/dashboard·/api·/ping·/health → 127.0.0.1:9152)는 그대로 유지 — 인증 통과 후 9152로 프록시되는 구조 그대로.
node bin/cli.js validate 통과,
python3 -c "yaml.safe_load(...)" 파싱 무결 확인.
⚠ authPaths 필드 자체는 아직 인증게이트.한선/게이트웨이통합.한선에 실배선되지 않은 상태(라이브 무접촉 원칙상 이번 작업 범위 밖) — YAML 선언만 완료, 라이브 게이트 동작은 후속 작업(#12 잔여)에서 배선.
- 회원 포털 페이지 —
게이트웨이Q/웹/members/index.html 신규 작성
- 내 계정(아이디/표시이름/이메일/계정ID), 구독 레벨, 크라우니달러 잔액(wallet.crowny 중심, mam/phone 보조), 사용기록+연결서비스 링크, 2026-09-30 유료전환 안내 배너.
- 자립 HTML(외부 리소스 0 — script/link/img/iframe src가 외부 호스트를 가리키는 사례 없음, 확인된 https:// 링크 2건은 전부
<a href> 앵커(로그인·문서)뿐).
- 크라우니디자인 SSOT 토큰 그대로 사용(라이트
--bg:#FAF9F7 등, 다크
--bg:#0A0908 등) — index.html과 동일.
- 회원 데이터는 로드시
fetch('/api/me', {credentials:'same-origin'}) (same-origin, 쿠키
crowny_token을 읽어
Authorization: Bearer 헤더로 첨부) — 로딩/에러(미로그인)/콘텐츠 3-state UI.
- 모바일 반응형(카드 그리드 1열 폴백).
- 랜딩 네비 갱신 —
게이트웨이Q/웹/index.html에 "회원 포털"(nav-links) / "내 계정"(CTA, 기존 "모니터"에서 교체) 링크를 /members로 추가.
- 한선씨 동반 파일 (훅 강제, 크라우니 헌법 준수)
-
게이트웨이Q/웹/members/회원포털생성.한선 — 레벨판정(2026-09-30 epoch 1790726400 이전/이후 + wallet.crowny 임계 100) + 서비스행생성 로직 대응, 컴파일·실행 검증 완료(3케이스 모두 정상: 프리뷰기간/유료전환후 고잔액/저잔액).
-
게이트웨이Q/웹/랜딩네비생성.한선 — 랜딩 네비 링크 생성 로직 대응, 컴파일·실행 검증 완료(/members 포함 확인).
관련 파일
/Users/ef/crowny-gateway/gateway.yaml (authPaths 블록, line ~1968)
/Users/ef/crowny-gateway/게이트웨이Q/웹/members/index.html (신규)
/Users/ef/crowny-gateway/게이트웨이Q/웹/members/회원포털생성.한선 (신규, 동반)
/Users/ef/crowny-gateway/게이트웨이Q/웹/index.html (네비 수정)
/Users/ef/crowny-gateway/게이트웨이Q/웹/랜딩네비생성.한선 (신규, 동반)
- 참고:
/Users/ef/crowny-gateway/게이트웨이Q/인증설계.md (인증 통합 설계 원문)
잔여 이슈
- authPaths 실배선 없음: gateway.yaml에 필드만 선언, 게이트웨이통합.한선/인증게이트.한선의 실제 라우팅 로직에서 authPaths를 읽어 401/402 처리하는 배선은 아직 없다(라이브 무접촉 지시로 이번 작업 범위 제외). 라이브 컷오버는 상위 오케스트레이터가 별도 진행해야 함.
- /api/me 라우팅 불일치: gateway.crowny.org의 pathRoutes는
/api prefix를 전부 127.0.0.1:9152(게이트웨이 자체 모니터 API)로 보내고 있어, 회원 포털의 /api/me fetch가 same-origin으로는 실제 auth-server(9401)에 도달하지 못한다. 실사용을 위해서는 /api/me(혹은 /api/* 중 인증 관련 경로)를 9401로 라우팅하는 pathRoute 추가가 필요 — 이번 작업 지시에는 없었으므로 별도 확정 후 반영 요망.
인증게이트.한선 자체의 라이브 배선(9401 위임 호출, 쿠키 추출, 401/402 응답 생성)은 여전히 미완(#12 계속).