OAuth Token 取得
API Credential を使用して OAuth トークンを取得する手順を説明します。
概要
VeriCerts Zero API を利用するには、まず OAuth トークンを取得する必要があります。API Credential(Client ID と Client Secret)を使用してトークンエンドポイントにリクエストを送信し、アクセストークンを取得します。
前提条件
- API Credential を発行済みであること(API Credential 発行)
- Client ID と Client Secret を取得済みであること
トークン取得の流れ
Client ID + Client Secret → Token Endpoint → Access Token → API 呼び出しAPI 仕様
エンドポイント
https://zero-engine-stg.vericerts.io/v1/auth/token
リクエスト
メソッド: POST
ヘッダー:
| ヘッダー | 値 |
|---|---|
| Content-Type | application/json |
リクエストボディ:
{
"grant_type": "client_credentials",
"client_id": "cli_xxxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| grant_type | string | ✓ | 固定値: client_credentials |
| client_id | string | ✓ | 発行された Client ID |
| client_secret | string | ✓ | 発行された Client Secret |
レスポンス
成功時(200 OK):
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}| フィールド | 型 | 説明 |
|---|---|---|
| access_token | string | API 呼び出しに使用するトークン |
| token_type | string | トークンタイプ(固定: Bearer) |
| expires_in | number | 有効期限(秒)。デフォルト 3600 秒(1時間) |
エラー時(401 Unauthorized):
{
"error": "invalid_client",
"error_description": "Invalid client credentials"
}サンプルコード
Postman
Postman を使用してトークンを取得する例です。

cURL
curl -X POST "${VERICERTS_API_URL}/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "cli_xxxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}'JavaScript (Node.js)
const response = await fetch(`${VERICERTS_API_URL}/v1/auth/token`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
grant_type: 'client_credentials',
client_id: process.env.VERICERTS_CLIENT_ID,
client_secret: process.env.VERICERTS_CLIENT_SECRET,
}),
});
const { access_token, expires_in } = await response.json();
console.log(`Token expires in ${expires_in} seconds`);Python
import requests
import os
response = requests.post(
f"{os.environ['VERICERTS_API_URL']}/v1/auth/token",
json={
"grant_type": "client_credentials",
"client_id": os.environ["VERICERTS_CLIENT_ID"],
"client_secret": os.environ["VERICERTS_CLIENT_SECRET"],
},
)
data = response.json()
access_token = data["access_token"]
expires_in = data["expires_in"]
print(f"Token expires in {expires_in} seconds")トークンの使用方法
取得したアクセストークンは、API リクエストの Authorization ヘッダーに設定して使用します。
curl -X GET "${VERICERTS_API_URL}/v1/..." \
-H "Authorization: Bearer {access_token}"トークンの有効期限
| 項目 | 値 |
|---|---|
| 有効期限 | 3600 秒(1時間) |
| 更新方法 | 新しいトークンを取得 |
Note: トークンが期限切れになった場合は、再度トークン取得 API を呼び出して新しいトークンを取得してください。リフレッシュトークンはサポートしていません。
トークン管理のベストプラクティス
トークンのキャッシュ
トークンは有効期限内であれば再利用できます。毎回のAPI呼び出しで新しいトークンを取得する必要はありません。
// 推奨: トークンをキャッシュして再利用
let cachedToken = null;
let tokenExpiry = null;
async function getAccessToken() {
// キャッシュされたトークンが有効な場合は再利用
if (cachedToken && tokenExpiry > Date.now()) {
return cachedToken;
}
// 新しいトークンを取得
const response = await fetch(`${API_URL}/v1/auth/token`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'client_credentials',
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
}),
});
const { access_token, expires_in } = await response.json();
// キャッシュを更新(余裕を持って期限を設定)
cachedToken = access_token;
tokenExpiry = Date.now() + (expires_in - 60) * 1000; // 1分前に期限切れ扱い
return cachedToken;
}エラーハンドリング
トークン取得に失敗した場合のエラーハンドリングを実装してください。
async function getAccessToken() {
try {
const response = await fetch(`${API_URL}/v1/auth/token`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'client_credentials',
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(`Token error: ${error.error_description}`);
}
return await response.json();
} catch (error) {
console.error('Failed to get access token:', error);
throw error;
}
}エラーコード一覧
| エラーコード | 説明 | 対処法 |
|---|---|---|
| invalid_client | Client ID または Client Secret が無効 | 認証情報を確認 |
| invalid_grant | grant_type が無効 | client_credentials を指定 |
| server_error | サーバーエラー | しばらく待ってから再試行 |
次のステップ
トークンを取得したら、API を使用して VC を発行できます。
- API リファレンス - 詳細な API 仕様
関連ガイド
Last updated on