🛣️ OAuth ルート
OAuth ルートは Express ミドルウェアではなく SDK コンポーザーです。プロバイダードライバーがブラウザーリダイレクトを実行し、コールバックルートがワンタイムログイントークンを作成してブラウザーをリダイレクトします。
一覧
| ルート | メソッド / プロトコル | パス | スキーマ | バリデーター | 成功ステータス |
|---|---|---|---|---|---|
googleOAuthRoute | GET / HTTP | /auth/oauth/google | googleOauthSchema | なし | ドライバーリダイレクト |
googleOAuthCallbackRoute | GET / HTTP | /auth/oauth/google/callback | なし | なし | 302 リダイレクト |
lineOAuthRoute | GET / HTTP | /auth/oauth/line | lineOauthSchema | なし | ドライバーリダイレクト |
lineOAuthCallbackRoute | GET / HTTP | /auth/oauth/line/callback | なし | なし | 302 リダイレクト |
twitterOAuthRoute | GET / HTTP | /auth/oauth/twitter | twitterOauthSchema | なし | ドライバーリダイレクト |
twitterOAuthCallbackRoute | GET / HTTP | /auth/oauth/twitter/callback | なし | なし | 302 リダイレクト |
詳細
googleOAuthRoute
実装
エンドポイント: GET /auth/oauth/google
アクセス: パブリック。validators: []。
リクエスト: googleOauthSchema は fp、purpose、redirectUrl、省略可能な typeId、および省略可能な空の JSON オブジェクトを検証します。
パイプライン: requestGoogleOAuth → orThrow。
成功: 注入された googleOAuthDriver.request がプロバイダーリダイレクトを処理します。
失敗: AuthenticationInvalidTokenError は 400 にマッピングされます。完全なソースを表示
googleOAuthCallbackRoute
実装
エンドポイント: GET /auth/oauth/google/callback
アクセス: パブリック。validators: []。
リクエスト: 合成されたスキーマはありません。ルートはプロバイダーのコールバックデータと requestQuery.state を直接読み取ります。
パイプライン: authenticateGoogleOAuth → extractOAuthLoginState → サインアップ時のみの checkEmailIsUniqueInIdentities → verifyGoogleOAuth → getLoginTokenTarget → getFingerprint → buildTokenVerification → generateOneTimeToken → storeOneTimeToken → generateRedirectURL → redirectTo → orThrow。
成功: redirectTo は、onetimeToken を付加したデコード済み state のリダイレクト URL に 302 を送信します。
失敗: 無効なトークン/入力は 400、アイデンティティなしは 404、データベース失敗は 500 です。Result の前に発生したドライバー例外はサービスのエラーハンドラーへ伝播します。完全なソースを表示
lineOAuthRoute
実装
エンドポイント: GET /auth/oauth/line
アクセス: パブリック。validators: []。
リクエスト: lineOauthSchema は fp、purpose、redirectUrl、省略可能な typeId、および省略可能な空の JSON オブジェクトを検証します。
パイプライン: requestLineOAuth → orThrow。
成功: 注入された lineOAuthDriver.request がプロバイダーリダイレクトを処理します。
失敗: orThrow([]) には明示的なソースエラーマッピングがありません。完全なソースを表示
lineOAuthCallbackRoute
実装
エンドポイント: GET /auth/oauth/line/callback
アクセス: パブリック。validators: []。
リクエスト: 合成されたスキーマはありません。プロバイダーのコールバックデータと requestQuery.state を読み取ります。
パイプライン: authenticateLineOAuth → extractOAuthLoginState → verifyLineOAuth → getLoginTokenTarget → getFingerprint → buildTokenVerification → generateOneTimeToken → storeOneTimeToken → generateRedirectURL → redirectTo → orThrow。
成功: 生成された onetimeToken を含む 302 リダイレクト。
失敗: 入力は 400、アイデンティティなしは 404、データベースまたは OAuth エラーは 500 です。スローされたドライバーコールバックは Result ラッパーをバイパスします。完全なソースを表示
twitterOAuthRoute
実装
エンドポイント: GET /auth/oauth/twitter
アクセス: パブリック。validators: []。
リクエスト: twitterOauthSchema は purpose、redirectUrl、省略可能な typeId、および省略可能な空の JSON オブジェクトを検証します。
パイプライン: prepareTwitterCallbackState → requestTwitterOAuth → orThrow。
成功: 注入された twitterOAuthDriver.request がプロバイダーリダイレクトを処理します。
失敗: orThrow([]) には明示的なソースエラーマッピングがありません。完全なソースを表示
twitterOAuthCallbackRoute
実装
エンドポイント: GET /auth/oauth/twitter/callback
アクセス: パブリック。validators: []。
リクエスト: 合成されたスキーマはありません。Twitter のドライバーがコールバック state を提供します。
パイプライン: authenticateTwitterOAuth → verifyTwitterOAuth → getLoginTokenTarget → getFingerprint → buildTokenVerification → generateOneTimeToken → storeOneTimeToken → generateRedirectURL → redirectTo → orThrow。
成功: 生成された onetimeToken を含む 302 リダイレクト。
失敗: 入力は 400、アイデンティティなしは 404、データベース/OAuth の失敗は 500 です。完全なソースを表示