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

⚙️ 認証ハンドラーブロック

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


🎯 概要

認証ハンドラーブロックは次のことを目的として設計されています:

  • 資格情報およびトークンを用いたユーザー認証を処理する
  • 検証とセキュリティを伴うユーザー登録を管理する
  • 作成・更新・検証を含むトークン操作を処理する
  • メール認証のワークフローをサポートする
  • 適切なトークン検証とフィンガープリンティングでセキュリティを確保する

📋 認証ハンドラーの種類

認証非同期ハンドラー

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

認証同期ハンドラー

同期的な認証操作(トークン検証、レスポンス整形など)を実行する関数。

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

最終的な認証レスポンスを整形して返す関数。


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

loginWithCredentials

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

Deprecated

This handler is deprecated.
Replacement: use 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;

// 合成で使用
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

createAccessToken

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

Deprecated

This handler is deprecated.
Replacement: use 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 によって安全なユーザーアクセストークンを生成します
  • 成功時にアクセストークンを返します
  • トークン生成エラーを丁寧に処理します

Usage:

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

const { createAccessToken } = handlers;

// 合成で使用
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

createRefreshToken

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: データベース保存を伴う安全なリフレッシュトークンを作成します

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

setResponseCookie

HTTP レスポンスに認証用クッキーを設定します。

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: アクセスおよびリフレッシュトークンのための安全なクッキーを設定します

パラメータ:

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

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

ペイロード要件:

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

主な機能:

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

使用例:

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

const { setResponseCookie } = handlers;

// 合成で使用
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

registerCredentials

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: 検証とパスワードハッシュ化を伴うユーザー登録を処理します

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(registerCredentials, registerTerminator);

refreshToken

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

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

パラメータ:

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

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

ペイロード要件:

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

主な機能:

  • 複数のソースからフィンガープリントを取得します
  • クッキーおよびボディからリフレッシュトークンを検証します
  • 一致確認のためクッキーとボディのトークンを比較します
  • 古いリフレッシュトークンをデータベースで無効化します
  • 新しいアクセスおよびリフレッシュトークンを生成します
  • 成功時に新しいトークンペアを返します
  • トークン検証および生成エラーを処理します

使用例:

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

const { refreshToken } = handlers;

// 合成で使用
const authPipeline = compose(refreshToken, setResponseCookie, loginTerminator);

logout

リフレッシュトークンを無効化しクッキーをクリアすることで、ユーザーをログアウトします。

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: トークンクリーンアップを伴う安全なユーザーログアウトを処理します

パラメータ:

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

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

ペイロード要件:

  • context.request にクッキー内のリフレッシュトークンが含まれている必要があります
  • クッキー削除のために context.response が利用可能である必要があります
  • トークン無効化のため context.db が利用可能である必要があります
  • context.configuration.authSecrets が利用可能である必要があります

主な機能:

  • クッキーからリフレッシュトークンを抽出します
  • リフレッシュトークンを検証・復号します
  • データベースで削除時刻を設定してトークンを無効化します
  • アクセスおよびリフレッシュトークンのクッキーを削除します
  • 成功時に更新済みペイロードを返します
  • トークン検証およびクリーンアップのエラーを処理します

使用例:

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

const { logout } = handlers;

// 合成で使用
const authPipeline = compose(logout, logoutTerminator);

checkToken

認証トークンを検証および処理します。

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

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

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(checkToken, someOtherHandler);

deleteToken

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

目的: セキュリティ検証を伴うトークン削除を処理します

パラメータ:

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

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

ペイロード要件:

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

主な機能:

  • 複数のソースからユーザー ID を抽出します
  • クッキーおよびベアラーヘッダーからのトークンを検証します
  • 一致確認のためクッキーとベアラートークンを比較します
  • アプリのアクセストークンのスーパー権限を処理します
  • ユーザーが自分のトークンのみ削除できることを検証します
  • データベースで削除時刻を設定してトークンを無効化します
  • 成功時に更新済みペイロードを返します
  • トークン検証および削除エラーを処理します

使用例:

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

const { deleteToken } = handlers;

// 合成で使用
const authPipeline = compose(deleteToken, someTerminator);

loginWithOnetimeToken

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

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

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(loginWithOnetimeToken, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

generateOnetimeToken

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: データベース保存を伴う安全なワンタイムトークンを作成します

パラメータ:

  • 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;

// 合成で使用
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;

// 合成で使用
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;

// 合成で使用
const authPipeline = compose(invalidateOnetimeToken, someTerminator);

confirmEmail

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: トークン検証を通じてメールアドレスを確認します

パラメータ:

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

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

ペイロード要件:

  • context.data.tokenInfo.identityId に identityId が存在している必要があります
  • ユーザー更新のため context.db が利用可能である必要があります

主な機能:

  • コンテキストのトークン情報から identityId を抽出します
  • identityId が文字列であることを検証します
  • データベースでユーザーのメール認証ステータスを更新します
  • 更新前にユーザーの存在を確認します
  • すでにメールが認証済みでないことを検証します
  • 成功時に確認結果を返します
  • データベースエラーを丁寧に処理します

使用例:

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

const { confirmEmail } = handlers;

// 合成で使用
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;

// 合成で使用
const authPipeline = compose(buildCheckConfirmEmailTokenPayload, checkToken, confirmEmail, confirmEmailTerminator);

sendVerificationEmail

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: トークン生成を伴うメール認証ワークフローを開始します

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);

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

loginTerminator

適切なレスポンス整形を使用してログインプロセスを終了します。

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: トークンとユーザー情報を使用して成功したログイン応答を整形します

パラメータ:

  • 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;

// 合成で使用
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);

logoutTerminator

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: 204 ステータスを使用して成功したログアウト応答を整形します

パラメータ:

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

戻り値: 204 statusCode を含む応答オブジェクト

ペイロード要件:

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

使用例:

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

const { logoutTerminator } = handlers;

// 合成で使用
const authPipeline = compose(logout, logoutTerminator);

registerTerminator

適切なレスポンス整形を使用して登録プロセスを終了します。

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: ユーザー情報を使用して成功した登録応答を整形します

パラメータ:

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

戻り値: 整形された登録応答オブジェクト

ペイロード要件:

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

使用例:

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

const { registerTerminator } = handlers;

// 合成で使用
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;

// 合成で使用
const authPipeline = compose(checkToken, confirmEmail, confirmEmailTerminator);

sendVerificationEmailTerminator

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

Deprecated

このハンドラーは非推奨です。
代替: 認証ブロックを使用してください

目的: 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;

// 合成で使用
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);