認証
Octopart API は、client_credentials グラントを使用する OAuth 2.0 を採用しています。これは、ユーザーのログインを必要としないマシン間通信フローです。アプリケーションは Client ID と Client Secret を短期間有効なアクセストークンと引き換え、そのトークンをすべての API リクエストに含めます。
認証情報の取得
認証情報は開発者ポータルで管理します。
-
portal.nexar.com にサインインします。
-
アプリケーションを開きます(または新規作成します)。
-
Client ID と Client Secret をコピーします。
アクセストークンのリクエスト
認証情報を使用して、トークンエンドポイントに POST リクエストを送信します。
curl -X POST https://identity.nexar.com/connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=CLIENT_ID" \
-d "client_secret=CLIENT_SECRET" \
-d "scope=supply.domain"
パラメーター |
値 |
|
|
|
アプリケーションの Client ID |
|
アプリケーションの Client Secret |
|
|
成功した場合のレスポンス:
{
"access_token": "eyJhbGci...",
"expires_in": 86400,
"token_type": "Bearer"
}
トークンの使用
すべての GraphQL リクエストの Authorization ヘッダーにアクセストークンを含めます。
Authorization: Bearer ACCESS_TOKEN
例:
curl -X POST https://api.nexar.com/graphql \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "query": "{ supSearchMpn(q: \"LM358\", limit: 1) { hits } }" }'
有効なトークンがないリクエスト、または有効期限切れのトークンを使用したリクエストは、HTTP 401 Unauthorized レスポンスを返します。
トークンの有効期限
トークンは 24 hours 後に期限切れになります(expires_in: 86400)。アプリケーションは有効期限を追跡し、現在のトークンが期限切れになる前に新しいトークンをリクエストする必要があります。client_credentials フローにはリフレッシュトークンはありません。新しいトークンを取得するには、Client ID と Client Secret を使ってトークンリクエストを再度実行するだけです。
一般的なパターンとしては、起動時に新しいトークンをリクエストし、その後 401 レスポンスを受信するたびに再度リクエストします。
Client Secret のローテーション
Client Secret が漏えいした場合、またはセキュリティ対策としてローテーションしたい場合:
-
portal.nexar.com のアプリケーション画面に移動します。
-
新しい Client Secret を生成します。
-
アプリケーションを新しいシークレットで更新します。
-
既存のトークンは有効期限が切れるまで有効なままなので、すぐに影響はありません。