← 開発者ガイド

認証モードを選ぶ

SDK を認証する 2 つの方法 — 静的な API キーが必要か、ユーザーごとの session JWT が必要かを判断する決定木。

SDK は 2 つの認証モードをサポートしています。どちらを選ぶかは、SDK を呼び出すコードが実際にどこで 動くかによって決まります — どちらが便利かではありません。

決定木

このコードはあなたのサーバー(Node.js backend、cron job、内部サービス)で動いていますか?API キーモードが使えます。キーを apiKey として渡します。コンソールのアプリ詳細ページから セルフサービスで発行できます(Regenerate API Key)— API キーを取得する を参照してください。 静的なキーを管理したくない場合は、下記の session JWT モードを使ってください。

const ai = new Quravin({
  endpoint: process.env.QURAVIN_URL,
  apiKey:   process.env.QURAVIN_KEY,   // secrets ストアから — 絶対にコミットしないこと
});

このコードはユーザーのブラウザで動いていますか?session JWT モードを使ってください。あなたのサーバーがユーザーごとに短期トークンを発行し、 ページに渡します — ブラウザは client_secret や静的な API キーを一切見ません。

const ai = new Quravin.Quravin({
  endpoint: "https://api.quravin.com",
  sessionToken: await fetchToken(),   // 自分の backend エンドポイントから
  onTokenExpired: fetchToken,          // 401 時に自動更新
});

x-api-key と session JWT —両者は互換ではない

上記の apiKey はリクエストを x-api-key: <key> として送信します。これはレガシーな、 アプリ単位の、org に紐づかない資格情報であり、プラットフォームはユーザーごとの JWT へと 段階的に移行を進めています。使う前に知っておくべきことが 2 つあります。

課金やユーザーごとの帰属が少しでも重要であれば、session JWT モードを使ってくださいx-api-key ではなく POST /auth/token で発行します。

session JWT を発行する: POST /auth/token

あなたの backend は、プラットフォームの POST /auth/token エンドポイントを呼び出すことで、 ユーザーごとに短期の JWT を発行します。認証には API キーを取得する で入手した client_id/client_secret のペアを HTTP Basic 認証として使います。

curl -X POST "https://api.quravin.com/auth/token" \
  -H "Authorization: Basic $(echo -n 'client_id:client_secret' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "user-12345",
    "pipelines": ["translate-string"],
    "ttl_seconds": 900
  }'

Response:

{ "token": "eyJhbGciOi...", "token_type": "Bearer", "expires_in": 900 }

返された tokensessionToken としてブラウザに渡してください。エンドポイントとブラウザ側の 配線の全体、および client_id/client_secret の代わりに個別に払い出された signing secret を 使うレガシーな自己署名の代替手段については、自分のサーバーに統合する を参照してください。

これが重要な理由

静的な API キーはベアラー資格情報です — ページのソースからそれを読み取った人は、あなたのアプリが できることすべてに完全にアクセスできてしまいます。session JWT は 1 人のユーザーに限定され、 数分で期限切れになり、pipelines[] ACL を持ち、ページを読み込むたびにあなたのサーバーが新しく 発行します。

経験則: コードがブラウザに配布されるなら、あるいは課金やユーザーごとの帰属が重要であるなら、 必要なのは session JWT であり、静的な API キーではありません。

次へ:自分のサーバーに統合する では、session JWT を 発行するトークン発行エンドポイントを紹介します。