1. Overview

Tomo IDV 서비스는 User의 신분증 인증을 수행하기 위한 절차(IDV Service)를 제공합니다. IDV Service는 IDV Server, IDV App으로 구성돼있으며, Client는 IDV Server를 통해 인증을 수행 한 후, User를 IDV App으로 연결시켜 신분증 인증을 수행할 수 있습니다.

Requirement

2. Sequence diagram

sequenceDiagram
participant ClientApp as Client App
participant ClientServer as Client Server
participant IDVServer as IDV Server
participant IDVApp as IDV App

ClientServer->>+IDVServer: [1] Get Access Token (POST /v1/oauth2/token)
IDVServer-->>-ClientServer: 200 OK

ClientApp->>+ClientServer: Start IDV 
ClientServer->>+IDVServer: [2] Start IDV(Get IDV URL) (POST /v1/idv/<country_code>/start)
IDVServer-->>-ClientServer: 200 OK
ClientServer-->>-ClientApp: 200 OK

ClientApp->>IDVApp: [3] Launch IDV App

IDVApp-->>ClientApp: [4] Return to Origin App

ClientServer->>+IDVServer: [5] Get Kyc (POST /v1/idv/<country_code>/kyc/get)
IDVServer->>-ClientServer: 200 OK

3. Specification

[1] Get Access Token

POST /v1/oauth2/token

TomoIDV API에 접근할 수 있는 Access Token을 발급 받기 위해, console로부터 발급 받은 Secret key를 이용하여 client_assertion을 만들고, 정해진 Body 양식을 제출해야합니다. tomo-idv-client-node SDK를 이용하면, 요청에 필요한 Headers와 Body를 쉽게 얻을 수 있습니다. SDK 사용 방법은 Client SDK 문서를 참고해주십시오. 직접 client_assertion을 생성하여 사용 할 시 Creating Client Assertion 문서를 참고해주십시오.

Request

Client SDK

Client SDK를 이용하면 손쉽게 Access token 양식을 작성할 수 있습니다.

import { createClientAssertion, buildTokenRequest } from 'tomo-idv-client-node';

// Create client assertion JWT
const clientAssertion = createClientAssertion({
  client_id: 'your-client-id',
  secret_key: 'your-secret-key',
  base_url: 'base-url'
});

// Build token request
const { headers, body } = buildTokenRequest(clientAssertion);

// Use the token request
const response = await fetch('<https://test.tomopayment.com/v1/oauth2/token>', {
  method: 'POST',
  headers: headers,
  body: body
});