← 목록
기타 2026-05-27 3KB 읽기 3분

메신저 v3 SSO 실API 매핑 (2026-05-27)

개요

크라우니메신저 v3의 SSO 로그인을 실제 sso.crowny.org:9401 (CrownyAuth) 라이브 API에 맞게 매핑. 기존 코드는 /api/auth (잘못된 경로) + crowny_id 필드(실제는 username)를 사용.

확정된 실 API 시그니처

  • 로그인: POST /api/login{ username, password }200 { ok, token, user } / 401 { error }
  • 검증: GET /api/verifyAuthorization: Bearer <token>200 { valid, user }
  • 프로필: GET /api/meAuthorization: Bearer <token> → 사용자 정보
  • username 필드: CrownyAuth에서는 nickname 컬럼이 username으로 동작
  • token 응답 필드: token (access_token/jwt 아님)
  • verify는 POST/GET 혼재: 실행 중인 서버는 GET /api/verify + Bearer 헤더

변경된 파일

/Users/ef/CrownyOS/apps/메신저/v3/서버/ws-server-v3.js

  • ssoLogin() 함수: /api/auth/api/login, 요청 필드 crowny_idusername
  • 응답 source 값: sso.crowny.orgexternal / local (sso_source 명확화)
  • 신규 ssoRequestWithHeaders() 함수 추가 (커스텀 헤더 지원)
  • ssoVerifyToken(): 외부 검증 시 GET /api/verify + Bearer 헤더 사용
  • 신규 ssoExternalProfile(crowny_id, token) 함수: GET /api/me 호출

/Users/ef/CrownyOS/apps/메신저/v3/통합신원.한선

  • SSO토큰요청(): /api/auth/api/login, 본문 crowny_idusername
  • SSO토큰검증(): 외부 출처 반환값 sso.crowny.orgexternal
  • 신규 SSO자가검증() 함수 추가 (6건 어설트)

라이브 검증 결과

bashcurl -X POST http://localhost:9766/sso/login \
  -d '{"crowny_id":"CRN-12345678","password":"test"}'
# 응답: {"error":"invalid_credentials","sso_source":"external"}

sso_source: "external" — 외부 CrownyAuth 서버 실제 응답 확인됨. (크레덴셜이 없어 401이지만 실제 외부 API 도달 증명)

호환성

  • 로컬 폴백: CrownyAuth 미응답 시 SSO-LOCAL| 형식 토큰 → sso_source: "local" (보존됨)
  • 기존 JWT 토큰 검증 경로 동일
  • crowny_id 형식 검증 (CRN-[0-9A-F]{8}) 유지

잔여 이슈

  • 통합신원.한선 컴파일 검증 필요 (/Users/ef/CrownyOS/crownyc/hanseonc_high로 직접 실행)
  • CrownyAuth의 crowny_id 형식이 CRW... (CrownyAuth 내부)와 CRN-... (메신저) 혼재 — 통합 정규화 필요
  • GET /api/verify가 실제로 token을 Body가 아닌 Bearer로 처리하는지 추가 확인 권장