Auth API
최종 수정: 2026년 7월 3일
Auth API는 ServiceUser(한 Space가 운영하는 제품의 일반 가입자)를 소셜 로그인으로 인증하는 OAuth 흐름입니다. ServiceLogin 설정에 연결된 공급자(예: Google)로 로그인하면, 이 API가 accessToken과 refreshToken을 발급합니다. 발급된 accessToken은 ACMA·ACDA 호출에만 쓰는 Bearer 토큰이며, CMA·CDA에는 사용할 수 없습니다. 신원 경계를 넘는 토큰은 없습니다.
베이스 URL은 https://auth.weegloo.com/v1이고, 모든 경로는 /spaces/{spaceId}/... 아래에 있습니다. 모든 요청과 응답 본문은 JSON입니다. 브라우저 앱이라면 이 와이어를 직접 다루기보다 공식 SDK weegloo-service-user 사용을 권장합니다. 이 페이지는 그 SDK가 내부에서 호출하는 HTTP 와이어를 다룹니다. SDK를 쓸 수 없는 환경(서버, 네이티브, 스크립트)에서 흐름을 직접 구현할 때 참고하세요.
로그인 흐름
로그인은 네 단계로 진행됩니다.
- 브라우저를 로그인 진입 URL(
/spaces/{spaceId}/login/oauth2/{provider})로 이동시킵니다. 이 URL은 공급자(Google) 로그인 화면으로 이어지는 리다이렉트 체인을 시작합니다. - 로그인이 끝나면 Weegloo가 ServiceLogin에 설정된
callbackUrl로 브라우저를 되돌려 보내며, 주소에?exchangeToken=<일회용 토큰>을 붙입니다. - 콜백 페이지가 주소에서
exchangeToken을 읽어 토큰 교환 엔드포인트(POST /spaces/{spaceId}/oauth/token)로 보내고, 응답으로accessToken과refreshToken을 받습니다. - 이후
accessToken을 Bearer 토큰으로 ACMA·ACDA를 호출합니다. 만료(expiresAt) 전에refreshToken으로 갱신하고, 로그아웃할 때 토큰을 폐기합니다.
exchangeToken은 일회용입니다. 콜백을 처리한 직후 주소창에서 즉시 제거해 노출·재사용을 막으세요(SDK를 쓰면 자동으로 처리됩니다).
토큰 모델
토큰 교환과 갱신은 같은 형태의 토큰 응답을 돌려줍니다. 응답에 담기는 토큰 문자열과 시각은 아래 예시 값이며, 실제로는 불투명한 비밀 문자열입니다(공급자 로그인을 거치는 흐름이라 실제 값을 그대로 옮길 수 없습니다). 구조와 필드는 서버 코드로 검증한 사실입니다.
{
"accessToken": "QY3xK9pR2mLs7Vc0Zt8Nf4Wd1Bj6Hg5Ua2Ee9Ck3PoZt8Nf4Wd",
"tokenType": "Bearer",
"scope": ["APP"],
"createdAt": "2026-06-18T05:00:00.000Z",
"expiresAt": "2026-06-19T05:00:00.000Z",
"refreshToken": "Rf7Hn2Qw9Zx4Tp1Lk6Vc3Bm8Yd5Gs0Ae2Uj7Co4NeLk6Vc3Bm",
"refreshExpiresAt": "2026-06-21T05:00:00.000Z"
}| 필드 | 타입 | 설명 |
|---|---|---|
accessToken | string | ACMA·ACDA 호출에 쓰는 Bearer 토큰. |
tokenType | string | 토큰 종류. 항상 "Bearer". |
scope | string 배열 | 토큰 권한 범위. ServiceUser 토큰은 ["APP"]. |
createdAt | string (date-time) | 토큰 발급 시각. |
expiresAt | string (date-time) | accessToken 만료 시각. |
refreshToken | string | accessToken을 갱신할 때 쓰는 토큰. |
refreshExpiresAt | string (date-time) | refreshToken 만료 시각. createdAt 기준 3일 뒤. |
세 토큰의 수명은 다음과 같습니다.
exchangeToken은 일회용이고 수명이 짧습니다. 콜백 직후 곧바로 교환해야 합니다. 교환 응답에는 포함되지 않으며, 로그인 흐름의 2단계에서 주소로 전달됩니다.accessToken의 수명은 서버 설정에 따르며, 정확한 만료 시각은 응답의expiresAt에 담깁니다. ACMA·ACDA 전용입니다.refreshToken은 발급 후 3일간 유효합니다(refreshExpiresAt). 갱신을 호출하면 새accessToken과refreshToken쌍이 발급되고 이전 쌍은 폐기됩니다(회전, rotation). 갱신할 때마다 직전refreshToken은 더 이상 쓸 수 없습니다.
API
아래 네 엔드포인트의 베이스 URL은 모두 https://auth.weegloo.com/v1입니다. 로그인 진입(GET), 토큰 교환(POST), 토큰 갱신(POST), 로그아웃(DELETE) 순서로 다룹니다.
관련 문서
- ServiceUser 로그인 (개념): ServiceLogin을 콘텐츠 스튜디오에서 설정하는 법.
- ACMA: 발급한 토큰으로 회원 콘텐츠를 다루는 API.
- ACDA: 회원에게 전달되는 읽기 API.
