🔗 OAuthブロック
OAuthブロックは、サードパーティのOAuthプロバイダーをNodeBlocksサービスに統合するための包括的な機能を提供します。現在サポートされているプロバイダー: Google、Twitter、LINE。設計により、他のプロバイダーへの拡張が可能です。
🎯 概要
OAuthブロックは以下の目的で設計されています:
- 複数のOAuthプロバイダーをサポート (Google、Twitter、LINE)
- OAuth開始を処理 - セキュアな状態管理を含む
- OAuthコールバックを処理 - ユーザーを認証
- プロバイダープロファイルをマッピング - アイデンティティにマッピングし、アカウントを作成または解決
- セキュアなリダイレクトURLを生成 - 認証トークンを含む
- 柔軟な認証フローを有効化 - サインアップとログイン用
📦 ブロックタイプ
🔍 スキーマ
OAuth関連エンドポイントの検証と記述に使用されるJSON Schema/OpenAPI定義:
- fpQueryParameter: フィンガープリント追跡パラメータ
- purposeQueryParameter: フロー目的 (
oauth-login|oauth-signup) - redirectUrlQueryParameter: OAuth後のクライアントリダイレクトURL
- typeIdQueryParameter: オプションのアイデンティティタイプ識別子
- stateQueryParameter: OAuthコールバック状態検証
- googleOauthSchema: OAuth開始スキーマ (クエリのみ、空のボディ)
- twitterOauthSchema: OAuth開始スキーマ (クエリのみ、空のボディ)
- lineOauthSchema: OAuth開始スキーマ (クエリのみ、空のボディ)
🔧 ブロック
OAuthフローオーケストレーション用の純粋なビジネスロジック関数:
Google OAuthブロック:
- requestGoogleOAuth: 状態管理とトークン生成を含むGoogle OAuth認証フローを開始し、プロバイダーの同意リダイレクトに委譲
- authenticateGoogleOAuth: Google OAuthコールバックを認証し、プロバイダーレスポンスからユーザープロファイルを読み取る
- verifyGoogleOAuth: Googleプロバイダープロファイルをアイデンティティにマッピングし、サインアップ時に新しいアイデンティティを作成、またはログイン時に既存のアイデンティティを解決
Twitter OAuthブロック:
- prepareTwitterCallbackState: フィンガープリント、目的、リダイレクトURLを含むTwitter OAuthコールバック用の状態オブジェクトを構築
- requestTwitterOAuth: 状態管理を含むTwitter OAuth認証リクエストを開始
- authenticateTwitterOAuth: Twitter OAuthコールバックを認証し、プロバイダーレスポンスからユーザープロファイルを読み取る
- verifyTwitterOAuth: プロバイダーIDを使用してTwitterプロバイダープロファイルをアイデンティティにマッピングし、フロー目的に基づいてアイデンティティを作成または解決
LINE OAuthブロック:
- requestLineOAuth: 状態トークン生成とプロバイダー委譲を含むLINE OAuth認証フローを開始
- authenticateLineOAuth: LINE OAuthコールバックを認証し、プロバイダーレスポンスからユーザープロファイルを読み取る
- verifyLineOAuth: LINEプロバイダープロファイルをアイデンティティにマッピングし、サインアップ時に新しいアイデンティティを作成、またはログイン時に既存のアイデンティティを解決
OAuthユーティリティブロック:
- extractOAuthLoginState: フィンガープリント、目的、リダイレクトURLを含むOAuth状態トークンをデコードして検証
- generateRedirectURL: 認証成功後にクライアントアプリケーション用のワンタイムまたはアクセストークンを含むセキュアなリダイレクトURLを構築
🛣️ ルート
OAuth開始とコールバック用のHTTPエンドポイント定義:
- googleOAuthRoute: GET
/auth/oauth/google— 状態管理を含むGoogle OAuthフローを開始し、プロバイダーの同意にリダイレクト - googleOAuthCallbackRoute: GET
/auth/oauth/google/callback— Google OAuthコールバックを処理し、ユーザーを認証し、トークンを含むクライアントアプリケーションにリダイレクト - twitterOAuthRoute: GET
/auth/oauth/twitter— 状態管理を含むTwitter OAuthフローを開始し、プロバイダーの同意にリダイレクト - twitterOAuthCallbackRoute: GET
/auth/oauth/twitter/callback— Twitter OAuthコールバックを処理し、ユーザーを認証し、トークンを含むクライアントアプリケーションにリダイレクト - lineOAuthRoute: GET
/auth/oauth/line— 状態管理を含むLINE OAuthフローを開始し、プロバイダーの同意にリダイレクト - lineOAuthCallbackRoute: GET
/auth/oauth/line/callback— LINE OAuthコールバックを処理し、ユーザーを認証し、トークンを含むクライアントアプリケーションにリダイレクト
🚀 機能
エンドツーエンドのOAuthフロー用にスキーマ、ルート、ブロックを組み合わせた構成された機能:
- googleOAuthFeature: スキーマ検証とプロバイダー同意リダイレクト用のルーティングを含む完全なGoogle OAuth開始ワークフロー
- googleOAuthCallbackFeature: ユーザー認証とクライアントアプリケーションへのリダイレクトを含む完全なGoogle OAuthコールバック処理ワークフロー
- twitterOAuthFeature: スキーマ検証とプロバイダー同意リダイレクト用のルーティングを含む完全なTwitter OAuth開始ワークフロー
- twitterOAuthCallbackFeature: ユーザー認証とクライアントアプリケーションへのリダイレクトを含む完全なTwitter OAuthコールバック処理ワークフロー
- lineOAuthFeature: スキーマ検証とプロバイダー同意リダイレクト用のルーティングを含む完全なLINE OAuth開始ワークフロー
- lineOAuthCallbackFeature: ユーザー認証とクライアントアプリケーションへのリダイレクトを含む完全なLINE OAuthコールバック処理ワークフロー