본문으로 건너뛰기

인증 API

앱 멤버(End User) 인증 엔드포인트입니다.

회원가입

POST /v1/public/app-members/signup

필드타입필수설명
login_idstring로그인 ID (앱 내 고유)
passwordstring비밀번호
nicknamestring표시명 (선택)
bash
curl -X POST "https://api.connectbase.world/v1/public/app-members/signup" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Content-Type: application/json" \
  -d '{
    "login_id": "myuser123",
    "password": "password123!",
    "nickname": "홍길동"
  }'

응답:

json
{
  "member_id": "member_abc",
  "nickname": "홍길동",
  "access_token": "eyJhbGciOi...",
  "refresh_token": "eyJhbGciOi..."
}

로그인

POST /v1/public/app-members/signin

bash
curl -X POST "https://api.connectbase.world/v1/public/app-members/signin" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Content-Type: application/json" \
  -d '{
    "login_id": "myuser123",
    "password": "password123!"
  }'

응답: 회원가입과 동일한 형태(member_id, nickname, access_token, refresh_token).

게스트 멤버 가입

POST /v1/public/app-members

회원가입 없이 익명 토큰을 발급받습니다.

bash
curl -X POST "https://api.connectbase.world/v1/public/app-members" \
  -H "X-Public-Key: cb_pk_your_public_key"

응답:

json
{
  "member_id": "guest_xxx",
  "access_token": "eyJhbGciOi...",
  "refresh_token": "eyJhbGciOi..."
}

내 정보 조회

GET /v1/public/app-members/me

⚠️ JWT (Authorization: Bearer) 인증 필수.

bash
curl -X GET "https://api.connectbase.world/v1/public/app-members/me" \
  -H "Authorization: Bearer access_token_here"

응답:

json
{
  "member_id": "member_abc",
  "nickname": "홍길동",
  "is_active": true,
  "custom_data": { "role": "admin" }
}

custom_data 수정

PATCH /v1/public/app-members/me/custom-data

⚠️ JWT 인증 필수. PATCH 방식으로 머지되며, 값을 null 로 설정하면 해당 키가 삭제됩니다.

bash
curl -X PATCH "https://api.connectbase.world/v1/public/app-members/me/custom-data" \
  -H "Authorization: Bearer access_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_data": { "role": "admin", "level": 5 }
  }'

응답:

json
{
  "member_id": "member_abc",
  "custom_data": { "role": "admin", "level": 5 }
}

로그아웃

콘솔 사용자(/v1/auth/...) 와 앱 멤버(/v1/public/app-members/...) 는 별도 엔드포인트를 사용합니다.

콘솔 사용자

POST /v1/auth/logout

⚠️ refresh_token 으로 인증 합니다 (access_token 아님). Authorization: Bearer <refresh_token> 헤더 필요. SDK의 콘솔 인증 모듈이 호출합니다.

bash
curl -X POST "https://api.connectbase.world/v1/auth/logout" \
  -H "Authorization: Bearer refresh_token_here"

별칭 GET /v1/auth/logout 도 일부 호환성 시나리오용으로 존재합니다.

앱 멤버

POST /v1/public/app-members/signout

SDK 의 cb.auth.signOut() 이 이 엔드포인트를 호출합니다. access_token 으로 인증.

bash
curl -X POST "https://api.connectbase.world/v1/public/app-members/signout" \
  -H "X-Public-Key: cb_pk_..." \
  -H "Authorization: Bearer access_token_here"

토큰 재발급

POST /v1/auth/re-issue

refresh_token 으로 새 access_token 을 발급받습니다.

bash
curl -X POST "https://api.connectbase.world/v1/auth/re-issue" \
  -H "Authorization: Bearer refresh_token_here"

응답:

json
{
  "access_token": "eyJhbGciOi...",
  "refresh_token": "eyJhbGciOi..."
}

SDK 사용 시 onTokenRefresh 콜백이 자동으로 이 흐름을 처리합니다. 자세한 내용은 인증 설정 을 참고하세요.


OAuth 2.0 / OIDC 표준 엔드포인트

ConnectBase 는 앱간 OAuth 연동 을 위해 OAuth 2.0 / OIDC 표준 엔드포인트를 제공합니다. 한 앱이 Provider 가 되어 다른 앱(Consumer)에게 capability(scope) 를 노출하고, Consumer 는 발급된 토큰으로 Provider 의 보호된 자원 / 함수를 호출할 수 있습니다.

Discovery

MethodPathRFC
GET/.well-known/oauth-authorization-serverRFC 8414
GET/.well-known/openid-configurationOIDC Core
GET/.well-known/jwks.jsonRFC 7517

인증 / 토큰

MethodPathRFC설명
GET/oauth/authorizeRFC 6749 §4.1Authorization Code (SPA 동의 화면)
POST/oauth/parRFC 9126Pushed Authorization Request (request_uri)
POST/oauth/tokenRFC 6749client_credentials / authorization_code / refresh_token grant
POST/oauth/introspectRFC 7662토큰 검증
POST/oauth/revokeRFC 7009토큰 폐기
GET/oauth/userinfoOIDC CoreUserInfo (Consumer redirect_uri origin CORS 허용)
GET/oauth/end-sessionOIDC RP-Initiated LogoutBack-channel Logout

📌 모든 /oauth/* 엔드포인트는 production 에서 HTTPS 만 허용 (EnforceHTTPS 미들웨어). 또한 /oauth/* 표준 endpoint 는 server-to-server 호출이므로 CSRF 검사에서 면제됩니다 (Origin 헤더 없는 호출 허용).

운영 필수 환경 변수: OAUTH_RSA_PRIVATE_KEY_PEM (서명 키). 미주입 시 /oauth/token 이 5xx 를 반환하고 /.well-known/jwks.json 이 빈 배열을 반환합니다.

DPoP (RFC 9449)

Public client 보안을 위해 토큰 발급 시 DPoP 헤더로 proof-of-possession 을 동봉할 수 있습니다. 토큰 응답의 cnf.jkt 가 client 의 JWK thumbprint 와 일치해야 자원 서버에서도 통과합니다. 표준 에러 코드: invalid_dpop_proof, use_dpop_nonce.

Consumer Cross-App End-User Login (SPA)

Consumer 앱의 SPA Consent 화면(/oauth/authorize) 이 Provider 의 social login 옵션을 다음 엔드포인트로 받아 사용자에게 노출합니다.

MethodPath설명
GET/v1/public/oauth/clients/:client_id/login-optionsProvider 가 활성화한 social provider 목록 (공개)
GET/v1/public/oauth/clients/:client_id/social-login-url선택한 provider 의 social login URL (공개)
GET/POST/v1/public/oauth/:provider/callbackProvider 의 social provider 콜백
POST/v1/auth/oauth/exchange1회용 code → 토큰 교환 (cross-pod 안전 흐름)
MethodPath인증설명
GET/v1/oauth/consent/info앱 멤버 JWT동의 정보 조회
POST/v1/oauth/consent/approve앱 멤버 JWT동의
POST/v1/oauth/consent/deny앱 멤버 JWT거부
GET/v1/account/oauth/connections앱 멤버 JWT내 연결된 Consumer 목록
DELETE/v1/account/oauth/connections/:consent_id앱 멤버 JWT연결 해제

OAuth Webhook (Provider 이벤트 발송)

Provider 가 발생시키는 도메인 이벤트(예: order.created) 는 Consumer 가 등록한 카탈로그(/v1/integrations/providers/:provider_app_id/event-catalog) 의 event_type 을 따릅니다. 발송 시 X-ConnectBase-Signature + Idempotency-Key 헤더 포함, 재시도 / cleanup / dashboard 가 운영 ready 상태입니다 (2026-05-07).