Auth ブートストラップとトークン
目的: 認証が必要な jsonlog ルートを呼ぶ前に、アカウントスコープの Bearer トークンを取得すること。
境界メモ:
- このフローは
auth.jsonlog.comのエンドポイントを呼びます。 - それらのルートは jsonlog OpenAPI の対象外です。
前提条件
- JsonLog サービスに到達できること(ローカル利用時の既定値は
http://localhost:3002)。 - auth 環境がオリジンとクライアント向けに設定済みであること。
- ブートストラップスクリプトを使う場合は
node、curl、jqが利用可能であること。
UI フロー
- ユーザーが jsonlog 用に設定された auth クライアントでサインインする。
- クライアントがアカウントクレーム(
acc)を含む access token を受け取る。 - 保護された jsonlog ルートに
Authorization: Bearer <token>を付けて送信する。
API/Script フロー
ブートストラップヘルパーでテストIDを準備し、アカウントトークンマニフェストを出力します。
cd jsonlog
set -a && source .env && set +a
TEST_EMAIL_DOMAIN="example.com" npm run auth:bootstrap
/query 呼び出しには、出力されたマニフェストから account_access_token を取り出して使います。
HTTP/curl フロー
AUTH_BASE_URL="https://auth.jsonlog.com"
JSONLOG_BASE_URL="http://localhost:3002"
ACCESS_TOKEN="<account_scoped_token>"
curl -sS "${AUTH_BASE_URL}/.well-known/jwks.json?client_id=cid_jsonlog"
curl -sS -X POST "${JSONLOG_BASE_URL}/query" \
-H "authorization: Bearer ${ACCESS_TOKEN}" \
-H "content-type: application/json" \
--data '{"start_ts": 1700000000000, "end_ts": 1700000600000}'
検証
/queryでトークン欠落/無効の場合は401。- 有効なアカウントクレーム付きトークンの場合は
200と query レスポンスエンベロープを返します。