🛣️ OAuth ルートブロック
OAuth ルートブロックは、NodeBlocks アプリケーションのサードパーティ OAuth フローのための事前構成 HTTP エンドポイントを提供します。これらのルートはブロック、ログ、エラーハンドリングを構成して、堅牢な OAuth エクスペリエンスを提供します。最初のプロバイダーは Google です;追加のプロバイダーは同じパターンを従います。
🎯 概要
OAuth ルートブロックは次のことを目的として設計されています:
- 開始とコールバック処理のための OAuth エンドポイントを公開する
- 監視のためにログを使用してハンドラーを構成する
- 一貫した HTTP ステータスマッピングでエラーハンドリングを一元化する
- クエリパラメーターのためのスキーマ検証を活用する
📋 ルート構造
各 OAuth ルートは、一貫したパターンを従います:
- HTTP メソッド: 操作タイプ(GET)
- パス: エンドポイント URL
- ブロック: OAuth フロー調整のための構成された関数チェーン
- バリデーター: 認証と認可チェック(OAuth ルートではなし)
🔧 利用可能な OAuth ルート
googleOAuthRoute
GET /auth/oauth/google
を介して Google OAuth 認証フローを開始します。
目的: OAuth ドライバーに委任し、状態を準備することで Google OAuth フローを開始します。
ルート詳細:
- メソッド:
GET
- パス:
/auth/oauth/google
- 認証: 不要
ブロック:
requestGoogleOAuth
- Google OAuth フローを開始し、署名された状態を生成
バリデーター: なし(スキーマによって検証が処理される)
使用例:
import { compose } from '@nodeblocks/backend-sdk';
// フィーチャー構成で使用:
export const googleOAuthFeature = compose(googleOauthSchema, googleOAuthRoute);
googleOAuthCallbackRoute
GET /auth/oauth/google/callback
を介して Google OAuth コールバックを処理し、ユーザーをリダイレクトします。
目的: プロバイダーのコールバックを認証し、ログイン状態を検証し、トークンを発行し、ユーザーをリダイレクトすることで OAuth フローを完了します。
ルート詳細:
- メソッド:
GET
- パス:
/auth/oauth/google/callback
- 認証: 不要
ブロック:
authenticateGoogleOAuth
- プロバイダーのコールバックを検証し、ユーザープロフィールを読み取るextractOAuthLoginState
- 暗号化されたトークンから OAuth ログイン状態を抽出し、検証verifyGoogleOAuth
- プロバイダープロフィールに基づいてアイデンティティを解決または作成generateRedirectURL
- トークンを使用して署名されたリダイレクト URL を生成redirectTo
- クライアントへの HTTP リダイレクトを発行
バリデーター: なし(スキーマによって検証が処理される)
使用例:
import { compose } from '@nodeblocks/backend-sdk';
// フィーチャー構成で使用:
export const googleOAuthCallbackFeature = compose(
googleOauthCallbackSchema,
googleOAuthCallbackRoute
);