인증
Modfolio Pay API는 세 가지 인증 방식을 지원합니다. 사용 시나리오에 맞는 방식을 선택하세요.
Bearer JWT
사용자 대신 API 호출
사용자 컨텍스트M2M API Key
서버 간 통신
서비스 컨텍스트Agent API Key
AI 에이전트 인증
에이전트 컨텍스트Bearer JWT (Connect SSO)
Modfolio Connect SSO로 발급된 JWT 토큰을 Authorization 헤더에 전달합니다. 사용자가 로그인한 상태에서 해당 사용자의 데이터에 접근할 때 사용합니다.
사용 시나리오
- 프론트엔드에서 사용자의 월렛 잔액 조회
- 사용자의 구독 정보 확인
- 사용자의 결제 내역 조회
요청 예시
HTTP
GET /api/v1/wallets HTTP/1.1
Host: my.modfolio.io
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...TypeScript
const pay = createPayClient({
baseUrl: "https://my.modfolio.io",
auth: {
type: "bearer",
token: session.accessToken,
},
});JWT는 Modfolio Connect가 발급합니다. JWKS 엔드포인트를 통해 서명이 자동 검증됩니다. 토큰 만료 시 Connect SDK가 자동으로 갱신합니다.
M2M API Key
서버 간 통신에 사용되는 API Key입니다. X-Api-Key 헤더로 전달하며,X-Source-App 헤더로 호출 앱을 식별합니다. 특정 사용자의 데이터에 접근할 때는 X-User-Id 헤더를 추가합니다.
사용 시나리오
- 백엔드에서 사용자의 구독 상태 확인
- 서버 사이드에서 크레딧 차감
- 배치 작업에서 결제 상태 동기화
요청 예시
HTTP
POST /api/v1/wallets/charge-action HTTP/1.1
Host: my.modfolio.io
X-Api-Key: mpsk_live_abc123...
X-Source-App: gistcore
X-User-Id: user_abc123
Content-Type: application/json
{
"actionCode": "ai_generation",
"idempotencyKey": "req_unique_001"
}TypeScript
const pay = createPayClient({
baseUrl: "https://my.modfolio.io",
auth: {
type: "api-key",
key: process.env.MODFOLIO_PAY_KEY,
sourceApp: "gistcore",
userId: "user_abc123",
},
});API Key는 서버 사이드에서만 사용하세요. 클라이언트 코드에 노출하면 보안 위험이 발생합니다. 환경 변수로 관리하고 절대 소스 코드에 하드코딩하지 마세요.
Agent API Key (mpak_)
AI 에이전트 전용 인증 키입니다. 스코프 기반 권한 모델과 지출 한도를 지원하여, 에이전트가 허용된 범위 내에서만 API를 호출할 수 있도록 합니다.
특징
- 스코프 기반 권한 — 읽기/쓰기 권한을 리소스별로 세분화
- 지출 한도 — 일간/월간 최대 지출 금액 설정
- 감사 로그 — 모든 에이전트 호출이 감사 이벤트로 기록
- 즉시 비활성화 — 이상 활동 감지 시 키를 즉시 비활성화 가능
요청 예시
HTTP
GET /api/v1/wallets HTTP/1.1
Host: my.modfolio.io
Authorization: Bearer mpak_live_agent_xyz789...
X-Source-App: gistcoreTypeScript
const pay = createPayClient({
baseUrl: "https://my.modfolio.io",
auth: {
type: "agent-key",
key: process.env.MODFOLIO_AGENT_KEY,
sourceApp: "gistcore",
},
});인증 방식 비교
| Bearer JWT | M2M API Key | Agent Key | |
|---|---|---|---|
| 헤더 | Authorization: Bearer | X-Api-Key | Authorization: Bearer |
| 접두사 | eyJ... (JWT) | mpsk_ | mpak_ |
| 만료 | 1시간 (자동 갱신) | 영구 (수동 폐기) | 영구 (수동 폐기) |
| 사용자 컨텍스트 | 자동 (JWT claim) | X-User-Id 헤더 | 스코프 기반 |
| 지출 한도 | 해당 없음 | 해당 없음 | 지원 |