SDK
공식 SDK 출시 예정. 지금은 REST API를 직접 호출하세요.
공식 SDK는 아직 npm에 배포되지 않았습니다. 출시 전까지는 이 문서의 예제처럼 fetch나 curl로
REST API(https://api.k-otp.dev/v1)를 직접 호출하세요.
예정된 패키지
| 패키지 | 대상 | 제공 기능 | 사용하는 키 |
|---|---|---|---|
@k-otp/sdk-core | 브라우저 | issue, verify | pk_ |
@k-otp/sdk-server | 서버(Node.js 등) | 발급·검증·상태·이력·원장·잔액·템플릿 등 공개 API 전체 | sk_ |
React, Vue, Svelte용 바인딩도 로드맵에 있습니다.
미리 보기
아래는 개발 중인 API 형태이며, 출시 전에 바뀔 수 있습니다.
import { createOtpClient } from "@k-otp/sdk-core";
const client = createOtpClient({
baseUrl: "https://api.k-otp.dev",
apiKey: "pk_...",
});
// SDK에서는 본문의 idempotencyKey가 필수입니다. 비어 있으면 요청 전에 BAD_REQUEST 오류가 납니다.
const { issueId } = await client.issue({
phoneNumber: "01012345678",
purpose: "login",
idempotencyKey: crypto.randomUUID(),
});
const result = await client.verify({ issueId, code: "123456" });import { createOtpServerClient } from "@k-otp/sdk-server";
const client = createOtpServerClient({
baseUrl: "https://api.k-otp.dev",
apiKey: process.env.KOTP_SECRET_KEY!,
});
const status = await client.otp.status({ issueId });
const balance = await client.otp.balance({});SDK 오류는 OtpApiError(code, status, message, data)로 전달됩니다. code는 오류의 코드를 따르며, 그 밖의 오류(INTERNAL_SERVER_ERROR 포함)는 UNKNOWN으로 정규화됩니다.