← 목록
기타 2026-04-15 4KB 읽기 5분

Crowny 회원관리 통합 Phase 1-3 완료

개요

crowny.org/crownybus.com 전체 도메인(33개 서브도메인)에 걸친 회원관리를 단일 중앙 auth 기반으로 통합. Phase 1(기반 구축) + Phase 2(마이그레이션) + Phase 3(SSO 미들웨어) 모두 실행.

무엇을 했는지

감사 결과 (이전 상태)

  • auth users.txt 169명 ≠ profiles.json 143명 (26명 gap + 10줄 중복)
  • patent 3명 독립 운영, auth 연동 0
  • project 5명 세션 중 2명 auth 누락
  • 서비스 링크: main 13명만 (나머지 서비스 전부 0)

Phase 1 — 통일 기반

#1 동기화 스크립트 (/Users/ef/crowny-data/auth/sync_users_profiles.py)

  • users.txt 중복 10줄 제거
  • profiles.json에 26명 추가
  • accountId/displayName 288필드 교정
  • 결과: 169명 ↔ 169명 완전 정합
#2/#3 중앙 DB 단일화
  • 단일 소스: /Users/ef/crowny-data/auth/
  • 실제 auth 서버 프로세스도 이 경로 사용 확인
  • libs/회원관리.한선 표준은 다음 세션 배포 예정 (현재 auth는 JS 운영 유지)

Phase 2 — 마이그레이션

#4 patent 통합 (migrate_patent.py)

  • patent 3명 전원 CRWaccountId 발급
  • auth users.txt +3, profiles.json +3
  • patent members.json에 accountId 필드 주입
  • services.patent.patentMemberId 양방향 링크
#5 project 통합 (migrate_project.py)
  • 세션 username 5개 중 누락 2명(mediasi, test_pm) auth에 생성
  • NO_LOGIN 상태로 플래그 (별도 로그인 시 실질 활성)

Phase 3 — SSO 연동

#6 미들웨어 (sso-middleware.js)

  • Bearer 토큰 추출 (헤더/쿠키/쿼리)
  • GET /api/verify 호출 + 1분 캐시
  • POST /api/touch 로 서비스 접속 자동 기록
  • 한선씨 동반본 sso-middleware.한선 작성
#7 auth-server.js 확장
  • POST /api/touch 엔드포인트 추가
  • profile.services[serviceName].lastSeen 자동 갱신
  • profile.lastSeen 전체 갱신

검증

회원: 174명 (169 동기화 + 3 patent + 2 project)
서비스 링크 (touch 테스트 후):
  main:    13명
  bank:     1명  (kps touch)
  project:  1명  (ef touch)

관련 파일 경로

auth 데이터

  • /Users/ef/crowny-data/auth/users.txt — 인증 DB (174명)
  • /Users/ef/crowny-data/auth/profiles.json — 프로필 DB (174명)
  • /Users/ef/crowny-data/auth/auth-server.js — 서버 (:9401)

마이그레이션 도구

  • /Users/ef/crowny-data/auth/sync_users_profiles.py — 재실행 가능 동기화
  • /Users/ef/crowny-data/auth/migrate_patent.py — patent 통합
  • /Users/ef/crowny-data/auth/migrate_project.py — project 통합

SSO

  • /Users/ef/crowny-data/auth/sso-middleware.js — 서비스 삽입용
  • /Users/ef/crowny-data/auth/sso-middleware.한선 — 한선씨 동반본

연동 대상 (향후)

  • /Users/ef/crowny-patent/data/members.json — accountId 주입됨
  • /Users/ef/crowny-project/data/sessions.json — username 정합 완료

잔여 이슈 (다음 세션)

  1. 각 서비스에 sso-middleware.js 실제 삽입
- crowny-bank, dex, chain, wallet, int, mind, chat, fab 등 18개 서비스 - 각 서버 진입점에 app.use(sso({serviceName:'bank'})) 추가 - 레거시 독자 인증 제거

  1. patent 등 기존 독립 로그인과 병합
- patent 로그인 UI가 있다면 auth 토큰 발급으로 전환

  1. libs/회원관리.한선 승격
- 한선씨 기반 auth 대체 버전 (회원관리.한선 + 회원터미널.한선) - crownyc VM의 잔여 이슈 4건 선행 해결 필요 - 참조: 2026-04-15-crownyc-input-vm-patch.md

  1. auth 서버 재시작 시 자동 동기화 훅
- 현재 재시작하면 profiles.json 기준으로만 로드 - users.txt 추가 항목이 in-memory에만 생성되고 디스크 미반영 - 서버 부팅 시 sync_users_profiles.py 자동 실행 또는 동일 로직 내장