メインコンテンツまでスキップ
バージョン: 0.5.0 (最新)

🔐 OAuthドライバー

OAuthドライバーは、Passport.jsを使用してサードパーティOAuthプロバイダーのための統一された統合レイヤーを提供します。プロバイダーのストラテジ設定をカプセル化し、ルートと機能に構成できるシンプルなリクエストとコールバックヘルパーを公開します。


🎯 概要

NodeBlocksのOAuthドライバーは、以下を提供するPassport.jsストラテジの薄いラッパーです:

  • プロバイダーの資格情報とスコープによるストラテジ設定
  • 構成のためのPromiseベースのリクエスト/コールバックヘルパー
  • プロバイダープロフィールを正規化するためのプラグ可能な検証コールバック

📋 利用可能なOAuthドライバー

Google OAuthドライバー

Google OAuthドライバーは、Passport.js Googleストラテジを統合し、リクエストとコールバック処理のためのヘルパーを公開します。

verifyGoogleCallback

Google OAuthコールバックを検証し、Passport.js認証のためのユーザープロフィールデータを処理します。

目的: 正規化されたプロフィール(email、displayName、accessToken)を抽出し、Passportに渡します。

パラメータ:

  • _req: Request — Expressリクエストオブジェクト(この実装では未使用)
  • accessToken: string — APIアクセスのためのGoogle OAuthアクセストークン
  • refreshToken: string — トークン更新のためのGoogle OAuthリフレッシュトークン
  • profile: Profile — OAuthコールバックからのGoogleユーザープロフィールデータ
  • done: VerifyCallback — Passport.js検証コールバック関数

戻り値: void — 結果またはエラーでdoneコールバックを呼び出す

ハンドラープロセス:

  • 入力: リクエスト、アクセス/リフレッシュトークン、Googleプロフィール、Passportコールバック
  • 処理: プロフィールからメールを抽出し、存在を検証、{ accessToken, displayName, email }形式にフォーマット
  • 出力: done(null, formattedProfile)またはdone(error, false)を呼び出す
  • エラー: メールが不足している場合にAuthenticationBadRequestErrorをスロー

使用法:

passport.use(new GoogleStrategy({ verifyGoogleCallback }));

createGoogleOAuthDriver

Passport.jsストラテジと認証ヘルパーを備えたGoogle OAuthドライバーを作成します。

目的: Googleストラテジを設定し、initializerequestcallbackヘルパーを公開します。

パラメータ:

  • clientID: string — Google Cloud ConsoleからのGoogle OAuthクライアントID
  • clientSecret: string — Google Cloud ConsoleからのGoogle OAuthクライアントシークレット
  • callbackURL: string — OAuth完了後にGoogleがリダイレクトするURL
  • scope: string[] — リクエストするOAuthスコープの配列(デフォルトは['email', 'profile']
  • verify: typeof verifyGoogleCallback — オプションの検証関数(デフォルトはverifyGoogleCallback

戻り値: GoogleOAuthDriver — 完全なOAuthフロー管理を備えたGoogleOAuthDriverオブジェクト

ハンドラープロセス:

  • 入力: クライアント資格情報、コールバックURL、スコープ、検証関数
  • 処理: Passport Googleストラテジを設定; リクエスト/コールバックのためにpassport.authenticateをPromiseでラップ
  • 出力: initializerequestcallbackを公開するドライバーオブジェクト
  • エラー: Passport/Promise拒否を伝播

使用法:

// Google OAuthドライバーを作成:
const googleDriver = createGoogleOAuthDriver(
'your-client-id',
'your-client-secret',
'https://app.com/auth/google/callback'
);

// Expressアプリで使用:
app.use('/auth/google', googleDriver.initialize);

🔗 関連ドキュメント