메신저 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/verify→Authorization: Bearer <token>→200 { valid, user } - 프로필:
GET /api/me→Authorization: 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_id→username- 응답
source값:sso.crowny.org→external/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_id→usernameSSO토큰검증(): 외부 출처 반환값sso.crowny.org→external- 신규
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로 처리하는지 추가 확인 권장