feat: SSO via shared session with dbx-main, sub-path hosting at /orderlist

This commit is contained in:
king
2026-05-24 05:35:19 +09:00
parent 75ab736e8f
commit c966d41628
4 changed files with 159 additions and 51 deletions
+33 -11
View File
@@ -1,28 +1,50 @@
# ===== Database (PostgreSQL) =====
# 앱 컨테이너는 같은 Docker network 안의 postgres-db 컨테이너에 접속합니다.
DB_HOST=postgres-db
DB_PORT=5432
DB_USER=king
DB_PASSWORD=change-me-strong-password
# 프로젝트별 DB 이름
ORDER_DB_NAME=orderlist_db
ITEM_DB_NAME=itemcode_db
RETURN_DB_NAME=return_db
CHECKLIST_DB_NAME=checklist_db
# (선택) DATABASE_URL을 직접 지정하면 위 DB_* 보다 우선 사용됩니다.
# (선택) 직접 DATABASE_URL 지정 위 DB_* 보다 우선
# DATABASE_URL=postgresql+psycopg2://king:password@postgres-db:5432/orderlist_db
# ===== App =====
APP_ROOT_PATH=
SESSION_SECRET_KEY=please-change-this-to-a-long-random-string
# NPM 리버스 프록시 뒤에서 /orderlist/ 서브경로로 호스팅된다.
APP_ROOT_PATH=/orderlist
# ===== Default admin (구글 로그인 제거 후, /login 시 자동 생성/로그인되는 계정) =====
DEFAULT_ADMIN_EMAIL=king@dbxcorp.co.kr
DEFAULT_ADMIN_NAME=Administrator
# ===== SSO (dbx-main 세션 공유) =====
# dbx-main 과 OMS 가 반드시 같은 값으로 맞춰야 SSO가 동작한다.
# - SESSION_SECRET_KEY : 두 앱이 동일해야 세션 쿠키를 서로 복호화 가능
# - SESSION_COOKIE_NAME : 두 앱이 동일해야 같은 쿠키를 본다 (기본 'session')
SESSION_SECRET_KEY=__paste-same-value-as-dbx-main__
SESSION_COOKIE_NAME=session
SESSION_SAME_SITE=lax
SESSION_HTTPS_ONLY=1
SESSION_MAX_AGE=1209600
# 세션에서 읽을 사용자 식별 키. dbx-main 이 어느 키로 쓰는지에 맞춰라.
SESSION_USER_KEY=user_email
SESSION_NAME_KEY=user_name
# 미인증 시 보낼 dbx-main 로그인/로그아웃 URL
MAIN_LOGIN_URL=https://dbx.no1king.freeddns.org/login
MAIN_LOGOUT_URL=https://dbx.no1king.freeddns.org/logout
# (선택) 신뢰된 업스트림 헤더로 사용자 정보 받기 (auth_request 패턴)
# 활성화하려면 1, 그리고 NPM/nginx 에서 인증 검증 후 헤더를 주입해야 한다.
ALLOW_TRUSTED_USER_HEADER=0
TRUSTED_USER_HEADER=X-Forwarded-User
TRUSTED_NAME_HEADER=X-Forwarded-User-Name
# dbx-main 에서 인증된 사용자를 OMS DB 에 자동 등록할지
AUTO_PROVISION_USERS=1
# 자동 등록 시 is_admin=True 로 만들 이메일(쉼표 구분)
ADMIN_EMAILS=king@dbxcorp.co.kr
# ===== Docker network =====
# 이미 운영 중인 postgres-db가 속한 외부 네트워크 이름.
# `docker inspect postgres-db --format '{{range $k,$v := .NetworkSettings.Networks}}{{$k}}{{end}}'` 로 확인.
POSTGRES_NETWORK=postgres-net
POSTGRES_NETWORK=postgres_default
WEB_NETWORK=npm_default