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

⚙️ 認証ハンドラー

認証ハンドラーは、Nodeblocksアプリケーションでユーザー認証と認可操作のコアビジネスロジック関数を提供します。これらのハンドラーは、ログイン、登録、トークン管理、メール確認の一般的なパターンをカプセル化します。


🎯 概要

認証ハンドラーは以下の目的で設計されています:

  • 認証情報とトークンによるユーザー認証の処理
  • バリデーションとセキュリティを含むユーザー登録の管理
  • 作成、更新、バリデーションを含むトークン操作の処理
  • メール確認ワークフローのサポート
  • 適切なトークンバリデーションとフィンガープリンティングによるセキュリティの確保

📋 認証ハンドラータイプ

認証非同期ハンドラー

非同期認証操作(データベース呼び出し、トークン生成など)を実行する関数。

認証同期ハンドラー

同期認証操作(トークンバリデーション、レスポンスフォーマットなど)を実行する関数。

認証ターミネーターハンドラー

最終的な認証レスポンスをフォーマットして返す関数。


🔧 利用可能な認証ハンドラー

loginWithCredentials

メールとパスワードの認証情報でユーザーを認証します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: 認証情報バリデーションとアカウントセキュリティを含むユーザーログインを処理

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.email または context.data.email: ユーザーメール
    • params.requestBody.password または context.data.password: ユーザーパスワード
    • context.db: データベース接続
    • context.configuration.maxFailedLoginAttempts: 最大失敗試行回数(デフォルト: 5)

戻り値: Result<RouteHandlerPayload, Error> - 成功時はidentity、エラー時はエラー

ペイロード要件:

  • メールとパスワードはリクエストボディまたはコンテキストデータで提供される必要があります
  • context.dbはデータベース操作で利用可能である必要があります
  • context.configurationにはmaxFailedLoginAttempts設定が含まれている必要があります

主な機能:

  • メールとパスワードが提供されていることを検証
  • データベースでユーザーアイデンティティが存在するかチェック
  • 認証のためにパスワードハッシュを比較
  • 失敗試行後にアカウントロックを処理
  • 成功したログイン時に失敗試行をリセット
  • 成功時にidentityデータを返す
  • データベースエラーを適切に処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { loginWithCredentials } = handlers;

// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

createAccessToken

認証済みセッション用のユーザーアクセストークンを生成します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: フィンガープリントバリデーションを含む安全なアクセストークンを作成

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.fingerprint または context.data.fingerprint: セキュリティフィンガープリント
    • params.requestBody.id または context.data.id または context.identity.id: ユーザーID
    • context.request: Expressリクエストオブジェクト
    • context.configuration.authSecrets: 認証シークレット
    • context.configuration.jwtOpts: JWTオプション

戻り値: Result<RouteHandlerPayload, Error> - 成功時はaccessToken、エラー時はエラー

ペイロード要件:

  • ユーザーIDはリクエストボディ、コンテキストデータ、またはidentityから利用可能である必要があります
  • context.requestにはトークン確認用のIPとヘッダーが含まれている必要があります
  • context.configuration.authSecretsjwtOptsは利用可能である必要があります

主な機能:

  • 複数のソース(リクエストボディ、コンテキストデータ、identity)からユーザーIDを抽出
  • ドメイン、フィンガープリント、IP、ユーザーエージェントでトークン確認を構築
  • JWTで安全なユーザーアクセストークンを生成
  • 成功時にアクセストークンを返す
  • トークン生成エラーを適切に処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { createAccessToken } = handlers;

// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

createRefreshToken

トークン更新用のリフレッシュトークンを生成します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: データベースストレージを含む安全なリフレッシュトークンを作成

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.fingerprint または context.data.fingerprint: セキュリティフィンガープリント
    • params.requestBody.id または context.data.id または context.identity.id: ユーザーID
    • context.request: Expressリクエストオブジェクト
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット
    • context.configuration.refreshTokenOpts: リフレッシュトークンオプション
    • context.configuration.refreshTokenExpireTime: リフレッシュトークンの有効期限

戻り値: Result<RouteHandlerPayload, Error> - 成功時はrefreshToken、エラー時はエラー

ペイロード要件:

  • ユーザーIDはリクエストボディ、コンテキストデータ、またはidentityから利用可能である必要があります
  • context.requestにはトークン確認用のIPとヘッダーが含まれている必要があります
  • context.dbはトークンストレージで利用可能である必要があります
  • context.configurationには認証シークレットとリフレッシュトークンオプションが含まれている必要があります

主な機能:

  • 複数のソースからユーザーIDとフィンガープリントを抽出
  • ドメイン、フィンガープリント、IP、ユーザーエージェントでトークン確認を構築
  • JWTで安全なリフレッシュトークンを生成
  • 有効期限付きでトークンをデータベースに保存
  • 成功時にリフレッシュトークンを返す
  • トークン生成とストレージエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { createRefreshToken } = handlers;

// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

setResponseCookie

HTTPレスポンスに認証Cookieを設定します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: アクセストークンとリフレッシュトークン用の安全なCookieを設定

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • context.response: Expressレスポンスオブジェクト
    • context.cookieOpts: Cookie設定オプション
    • context.data.accessToken: Cookieに設定するアクセストークン
    • context.data.refreshToken: Cookieに設定するリフレッシュトークン

戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー

ペイロード要件:

  • context.responseはCookie設定で利用可能である必要があります
  • context.cookieOptsにはCookie設定が含まれている必要があります
  • アクセストークンおよび/またはリフレッシュトークンはコンテキストデータで利用可能である必要があります

主な機能:

  • レスポンスオブジェクトが利用可能であることを検証
  • Access-Control-Allow-Credentialsヘッダーを設定
  • アクセストークン用の安全なCookieを設定
  • リフレッシュトークン用の安全なCookieを設定
  • セキュリティのために提供されたCookieオプションを使用
  • 成功時に更新されたペイロードを返す

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { setResponseCookie } = handlers;

// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

registerCredentials

メールとパスワードで新しいユーザーを登録します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: バリデーションとパスワードハッシュ化を含むユーザー登録を処理

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.email: ユーザーメールアドレス
    • params.requestBody.password: ユーザーパスワード
    • context.data.invitation.email: 招待からのメール(オプション)
    • context.db: データベース接続

戻り値: Result<RouteHandlerPayload, Error> - 成功時はidentity、エラー時はエラー

ペイロード要件:

  • メールとパスワードはリクエストボディで提供される必要があります
  • context.dbはデータベース操作で利用可能である必要があります

主な機能:

  • メールとパスワードが提供されていることを検証
  • 重複を防ぐために既存のアイデンティティをチェック
  • 保存前にパスワードを安全にハッシュ化
  • タイムスタンプとIDを含む基本エンティティを作成
  • 新しいアイデンティティをデータベースに挿入
  • 成功時にidentityデータを返す
  • データベースエラーを適切に処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { registerCredentials } = handlers;

// Use in composition
const authPipeline = compose(registerCredentials, registerTerminator);

refreshToken

有効なリフレッシュトークンを使用してアクセストークンを更新します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークンをローテーションし、新しいアクセス/リフレッシュトークンペアを生成

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.fingerprint または context.data.fingerprint または context.fingerprint: セキュリティフィンガープリント
    • context.request: Cookieとボディを含むExpressリクエストオブジェクト
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット
    • context.configuration.jwtOpts: JWTオプション

戻り値: Result<RouteHandlerPayload, Error> - 成功時は新しいトークン、エラー時はエラー

ペイロード要件:

  • context.requestにはCookieまたはボディにリフレッシュトークンが含まれている必要があります
  • context.dbはトークン無効化で利用可能である必要があります
  • context.configurationには認証シークレットとJWTオプションが含まれている必要があります

主な機能:

  • 複数のソースからフィンガープリントを抽出
  • Cookieとボディからリフレッシュトークンをバリデーション
  • 一貫性のためにCookieとボディのトークンを比較
  • データベースで古いリフレッシュトークンを無効化
  • 新しいアクセスとリフレッシュトークンを生成
  • 成功時に新しいトークンペアを返す
  • トークンバリデーションと生成エラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { refreshToken } = handlers;

// Use in composition
const authPipeline = compose(refreshToken, setResponseCookie, loginTerminator);

logout

リフレッシュトークンを無効化し、Cookieをクリアしてユーザーをログアウトします。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークンクリーンアップを含む安全なユーザーログアウトを処理

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • context.request: Cookieを含むExpressリクエストオブジェクト
    • context.response: Expressレスポンスオブジェクト
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー

ペイロード要件:

  • context.requestにはCookieにリフレッシュトークンが含まれている必要があります
  • context.responseはCookieクリアで利用可能である必要があります
  • context.dbはトークン無効化で利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • Cookieからリフレッシュトークンを抽出
  • リフレッシュトークンをバリデーションして復号化
  • 削除タイムスタンプでデータベースのトークンを無効化
  • アクセスとリフレッシュトークンのCookieをクリア
  • 成功時に更新されたペイロードを返す
  • トークンバリデーションとクリーンアップエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { logout } = handlers;

// Use in composition
const authPipeline = compose(logout, logoutTerminator);

checkToken

認証トークンをバリデーションして処理します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークンの真正性を検証し、ユーザー情報を抽出

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.token: バリデーションするトークン
    • context.data.checkToken.target: トークンターゲット(オプション)
    • context.request: Expressリクエストオブジェクト
    • context.db: ワンタイムトークン用のデータベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時はトークン情報、エラー時はエラー

ペイロード要件:

  • トークンはリクエストボディで提供される必要があります
  • context.requestはリクエスト情報抽出で利用可能である必要があります
  • context.dbはワンタイムトークンバリデーションで利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • リクエストからトークンとフィンガープリントを抽出
  • JWTバリデーションを使用してトークンをバリデーション
  • ユーザーアクセストークンとワンタイムトークンの両方を処理
  • アクセストークンのセキュリティチェックを実行
  • ワンタイムトークンのターゲットと状態をバリデーション
  • 使用後にワンタイムトークンを無効化
  • 成功時にトークン情報またはユーザーIDを返す
  • トークンバリデーションエラーを適切に処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { checkToken } = handlers;

// Use in composition
const authPipeline = compose(checkToken, someOtherHandler);

deleteToken

ユーザートークンを削除し、セッションを無効化します。

目的: セキュリティバリデーションを含むトークン削除を処理

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • context.data.id または params.requestBody.id または params.requestQuery.id: トークンを削除するユーザーID
    • context.request: Cookieとヘッダーを含むExpressリクエストオブジェクト
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー

ペイロード要件:

  • ユーザーIDはコンテキストデータ、リクエストボディ、またはクエリパラメータで提供される必要があります
  • context.requestはトークン抽出で利用可能である必要があります
  • context.dbはトークン無効化で利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • 複数のソースからユーザーIDを抽出
  • CookieとBearerヘッダーからトークンをバリデーション
  • 一貫性のためにCookieとBearerトークンを比較
  • アプリアクセストークンのスーパーパーミッションを処理
  • ユーザーが自分のトークンのみを削除できることをバリデーション
  • 削除タイムスタンプでデータベースのトークンを無効化
  • 成功時に更新されたペイロードを返す
  • トークンバリデーションと削除エラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { deleteToken } = handlers;

// Use in composition
const authPipeline = compose(deleteToken, someTerminator);

loginWithOnetimeToken

ワンタイムトークンを使用してユーザーを認証します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: 一時的なワンタイムトークンによる認証を処理

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.onetimeToken: 認証用のワンタイムトークン
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー

ペイロード要件:

  • ワンタイムトークンはリクエストボディで提供される必要があります
  • context.dbはトークンバリデーションで利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • リクエストボディからワンタイムトークンをバリデーション
  • JWTを使用してトークンを復号化して検証
  • トークンタイプが'onetime'であることをバリデーション
  • トークンがデータベースに存在し、有効であることをチェック
  • 成功した使用後にトークンを無効化
  • トークンの目的が'onetime-login'であることをバリデーション
  • 成功時に更新されたペイロードを返す
  • トークンバリデーションとデータベースエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { loginWithOnetimeToken } = handlers;

// Use in composition
const authPipeline = compose(loginWithOnetimeToken, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

generateOnetimeToken

一時アクセス用のワンタイムトークンを生成します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: データベースストレージを含む安全なワンタイムトークンを作成

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.fingerprint または context.data.fingerprint または context.fingerprint: セキュリティフィンガープリント
    • params.requestBody.target または context.data.target または context.target: トークンターゲット
    • params.requestBody.tokenData または context.data.tokenData または context.tokenData: トークンデータオブジェクト
    • context.request: Expressリクエストオブジェクト
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は生成されたトークン、エラー時はエラー

ペイロード要件:

  • トークンデータはオブジェクトとして提供される必要があります
  • context.requestはリクエスト情報で利用可能である必要があります
  • context.dbはトークンストレージで利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • トークンデータがオブジェクトとして提供されていることを検証
  • 複数のソースからフィンガープリント、ターゲット、トークンデータを抽出
  • ドメイン、フィンガープリント、IP、ターゲットでトークン確認を構築
  • JWTで安全なワンタイムトークンを生成
  • 無効化フラグ付きでトークンをデータベースに保存
  • 成功時に生成されたトークンを返す
  • トークン生成とストレージエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { generateOnetimeToken } = handlers;

// Use in composition
const authPipeline = compose(generateOnetimeToken, someTerminator);

restoreOnetimeToken

以前に無効化されたワンタイムトークンを復元します。

目的: 再利用のためにワンタイムトークンを再有効化

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.token: 復元するトークン
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は復元されたトークン、エラー時はエラー

ペイロード要件:

  • トークンはリクエストボディで提供される必要があります
  • context.dbはトークン更新で利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • トークンがリクエストボディで提供されていることを検証
  • JWTを使用してトークンを復号化して検証
  • トークンがステートフル(ワンタイムトークン)であることをバリデーション
  • データベースのトークン無効化ステータスを更新
  • 成功時に復元されたトークンを返す
  • トークンバリデーションとデータベースエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { restoreOnetimeToken } = handlers;

// Use in composition
const authPipeline = compose(restoreOnetimeToken, someTerminator);

invalidateOnetimeToken

ワンタイムトークンを無効化します。

目的: ワンタイムトークンを永続的に無効化

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • params.requestBody.token または context.data.token または context.token: 無効化するトークン
    • params.requestBody.fingerprint または context.data.fingerprint または context.fingerprint: セキュリティフィンガープリント
    • context.db: データベース接続
    • context.configuration.authSecrets: 認証シークレット

戻り値: Result<RouteHandlerPayload, Error> - 成功時は無効化されたトークン、エラー時はエラー

ペイロード要件:

  • トークンとフィンガープリントは提供される必要があります
  • context.dbはトークン更新で利用可能である必要があります
  • context.configuration.authSecretsは利用可能である必要があります

主な機能:

  • トークンとフィンガープリントが提供されていることを検証
  • JWTを使用してトークンを復号化して検証
  • トークンがステートフル(ワンタイムトークン)であることをバリデーション
  • データベースのトークン無効化ステータスを更新
  • 成功時に無効化されたトークンを返す
  • トークンバリデーションとデータベースエラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { invalidateOnetimeToken } = handlers;

// Use in composition
const authPipeline = compose(invalidateOnetimeToken, someTerminator);

confirmEmail

確認トークンを使用してユーザーのメールアドレスを確認します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークンバリデーションを通じてメールアドレスを検証

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • context.data.tokenInfo.identityId: トークンからのアイデンティティID
    • context.db: データベース接続

戻り値: Result<RouteHandlerPayload, Error> - 成功時は確認結果、エラー時はエラー

ペイロード要件:

  • identityIdはcontext.data.tokenInfo.identityIdで利用可能である必要があります
  • context.dbはユーザー更新で利用可能である必要があります

主な機能:

  • コンテキストのトークン情報からidentityIdを抽出
  • identityIdが文字列であることをバリデーション
  • データベースのユーザーのメール確認ステータスを更新
  • 更新前にユーザーが存在するかチェック
  • メールがまだ確認されていないことをバリデーション
  • 成功時に確認結果を返す
  • データベースエラーを適切に処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { confirmEmail } = handlers;

// Use in composition
const authPipeline = compose(checkToken, confirmEmail, confirmEmailTerminator);

buildCheckConfirmEmailTokenPayload

メール確認トークンバリデーション用のペイロードを構築します。

目的: メール確認ワークフロー用のトークンバリデーションを設定

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む

戻り値: Result<RouteHandlerPayload, Error> - 成功時はcheckToken設定

ペイロード要件:

  • 特定の要件なし - このハンドラーは常に成功します

主な機能:

  • checkToken設定をメール確認ターゲットとマージ
  • ターゲットをTARGET_CONFIRM_EMAIL定数に設定
  • 常に成功(エラー条件なし)
  • checkToken設定を含む更新されたペイロードを返す
  • メール確認ワークフローの準備ステップとして使用

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { buildCheckConfirmEmailTokenPayload } = handlers;

// Use in composition
const authPipeline = compose(buildCheckConfirmEmailTokenPayload, checkToken, confirmEmail, confirmEmailTerminator);

sendVerificationEmail

ユーザーのメールアドレスに確認メールを送信します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークン生成を含むメール確認ワークフローを開始

パラメータ:

  • payload: RouteHandlerPayload - リクエストコンテキストとデータを含む
    • context.data.identityId または params.requestParams.identityId または context.data.identity.id: アイデンティティID
    • params.requestBody.fingerprint または context.data.fingerprint: セキュリティフィンガープリント
    • context.db: データベース接続
    • context.mailService: メール送信用のメールサービス
    • context.configuration.verifyEmailConfig: メール確認設定
    • context.configuration.authSecrets: 認証シークレット
    • context.configuration.jwtOpts: JWTオプション

戻り値: Result<RouteHandlerPayload, Error> - 成功時はメール結果とトークン、エラー時はエラー

ペイロード要件:

  • identityIdは提供される必要があります
  • context.dbはユーザー検索とトークンストレージで利用可能である必要があります
  • context.mailServiceはメール送信で利用可能である必要があります
  • context.configuration.verifyEmailConfigは有効化され、設定されている必要があります
  • context.configuration.authSecretsjwtOptsは利用可能である必要があります

主な機能:

  • 複数のソースからidentityIdが提供されていることを検証
  • 設定でメール確認機能が有効になっているかチェック
  • メールサービスが利用可能であることを検証
  • メール設定(bodyTemplate、subject、urlTemplate)をバリデーション
  • データベースからユーザーを取得し、メールが存在することをバリデーション
  • 安全なワンタイム確認トークンを生成
  • 無効化フラグ付きでトークンをデータベースに保存
  • メールサービスを使用して確認メールを送信
  • 成功時にメール結果とトークンを返す
  • 設定とメール送信エラーを処理

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { sendVerificationEmail } = handlers;

// Use in composition
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);

🎯 認証ターミネーターハンドラー

loginTerminator

適切なレスポンスフォーマットでログインプロセスを終了します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: トークンとユーザー情報を含む成功したログインレスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.accessToken: 前のハンドラーからのアクセストークン
    • context.data.refreshToken: 前のハンドラーからのリフレッシュトークン
    • context.data.identity: ユーザーアイデンティティ情報

戻り値: フォーマットされたログインレスポンスオブジェクト

ペイロード要件:

  • context.data.accessTokenrefreshTokenidentityは前のハンドラーから利用可能である必要があります

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { loginTerminator } = handlers;

// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

logoutTerminator

適切なステータスコードでログアウトプロセスを終了します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: 204ステータスで成功したログアウトレスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果

戻り値: 204 statusCodeを含むレスポンスオブジェクト

ペイロード要件:

  • 特定の要件なし - このターミネーターは常に204を返します

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { logoutTerminator } = handlers;

// Use in composition
const authPipeline = compose(logout, logoutTerminator);

registerTerminator

適切なレスポンスフォーマットで登録プロセスを終了します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: ユーザー情報を含む成功した登録レスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.email: 前のハンドラーからのユーザーメール
    • context.data.id: 前のハンドラーからのユーザーID

戻り値: フォーマットされた登録レスポンスオブジェクト

ペイロード要件:

  • context.data.emailidは前のハンドラーから利用可能である必要があります

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { registerTerminator } = handlers;

// Use in composition
const authPipeline = compose(registerCredentials, registerTerminator);

confirmEmailTerminator

適切なステータスコードでメール確認プロセスを終了します。

目的: 204ステータスで成功したメール確認レスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.confirmEmail: 前のハンドラーからの確認結果

戻り値: 204 statusCodeを含むレスポンスオブジェクト

ペイロード要件:

  • context.data.confirmEmailは前のハンドラーから利用可能である必要があります

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { confirmEmailTerminator } = handlers;

// Use in composition
const authPipeline = compose(checkToken, confirmEmail, confirmEmailTerminator);

sendVerificationEmailTerminator

適切なステータスコードでメール送信プロセスを終了します。

非推奨

このハンドラーは非推奨です。
代替: Authentication Blocksを使用

目的: 204ステータスで成功したメール送信レスポンスをフォーマット

パラメータ:

  • result: Result<RouteHandlerPayload, Error> - ペイロードまたはエラーを含む結果
    • context.data.sendVerificationEmail: 前のハンドラーからのメール送信結果
    • context.data.token: 前のハンドラーから生成されたトークン

戻り値: 204 statusCodeを含むレスポンスオブジェクト

ペイロード要件:

  • context.data.sendVerificationEmailtokenは前のハンドラーから利用可能である必要があります

使用例:

import { handlers } from '@nodeblocks/backend-sdk';

const { sendVerificationEmailTerminator } = handlers;

// Use in composition
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);