サードパーティ統合
OAuth スタイルの認証フローを使用して、オーガナイザー アカウントを接続し、スコープ指定ベアラーを使用して API からイベント フィード データを読み取ります
1) 承認するようにユーザーをリダイレクトします。
アプリ名、コールバック URL、およびランダムな状態値を使用してオーガナイザーを Kagibagに送信します。
GET /oauth/authorize?client_name=MyApp&redirect_uri=https%3A%2F%2Fexample.com%2Fkagibag%2Fcallback&state=csrf_token_123client_name: 同意画面に表示される表示名。redirect_uri: 成功/エラー パラメータを受け取るコールバック URL。state: CSRF 対策トークン。コールバックで検証します。
2) コールバック結果を処理します。
Kagibag は、トークン ペイロードまたはエラー ペイロードを使用して redirect_uri にリダイレクトします。
成功クエリ パラメータ
トークン: 範囲がevents:readevent_feed_url: オーガナイザー フィード エンドポイント URLstate: 元のリクエストからエコーされた値
エラー クエリparams
error:access_deniederror_description: 理由 (例: ユーザーが拒否したか、オーガナイザーではない)state: 元のリクエストからエコーされた値
3) オーガナイザー イベントの読み取りフィード
返されたトークンをオーガナイザー イベント エンドポイントのベアラー トークンとして使用します。
curl -H "Authorization: Bearer {token}" "{event_feed_url}"curl -H "Authorization: Bearer {token}" "https://app.kagibag.test/api/v1/organizer/{team_slug}/events/{event_slug}"イベントのリスト:
GET /api/v1/organizer/{team:slug}/eventsイベントの詳細:GET /api/v1/organizer/{team:slug}/events/{slug}認証範囲:トークンは、発行元のオーガナイザーのチーム フィードにのみアクセスできます。セキュリティ チェックリスト
- 認可リクエストごとに一意のランダムな状態を生成し、コールバックで検証します。
- 本番環境でのみ HTTPS コールバック URL を使用します。
- トークンを秘密のように扱い、保存時に暗号化して保存します。
- クライアント側のログ、分析、またはブラウザ ストレージでトークンを公開しないでください。
- 拒否/エラーのコールバックを適切に処理し、必要に応じてユーザーに再試行を促します。
コールバック ハンドラーの例
if (query.error) {
assert(query.state === session.oauth_state);
return showError(query.error_description ?? '認証に失敗しました');
}
assert(query.state === session.oauth_state);
saveKagibagToken(query.token);
saveKagibagFeedUrl(query.event_feed_url);
return syncEventsNow();